@@ -2862,123 +2862,3 @@ define i1 @isnan_d_fpclass(half %x) {
2862
2862
%1 = call i1 @llvm.is.fpclass.f16 (half %x , i32 3 ) ; nan
2863
2863
ret i1 %1
2864
2864
}
2865
-
2866
- declare half @llvm.tan.f16 (half )
2867
-
2868
- define half @tan_f16 (half %a ) nounwind {
2869
- ; RV32IZFH-LABEL: tan_f16:
2870
- ; RV32IZFH: # %bb.0:
2871
- ; RV32IZFH-NEXT: addi sp, sp, -16
2872
- ; RV32IZFH-NEXT: sw ra, 12(sp) # 4-byte Folded Spill
2873
- ; RV32IZFH-NEXT: fcvt.s.h fa0, fa0
2874
- ; RV32IZFH-NEXT: call tanf
2875
- ; RV32IZFH-NEXT: fcvt.h.s fa0, fa0
2876
- ; RV32IZFH-NEXT: lw ra, 12(sp) # 4-byte Folded Reload
2877
- ; RV32IZFH-NEXT: addi sp, sp, 16
2878
- ; RV32IZFH-NEXT: ret
2879
- ;
2880
- ; RV64IZFH-LABEL: tan_f16:
2881
- ; RV64IZFH: # %bb.0:
2882
- ; RV64IZFH-NEXT: addi sp, sp, -16
2883
- ; RV64IZFH-NEXT: sd ra, 8(sp) # 8-byte Folded Spill
2884
- ; RV64IZFH-NEXT: fcvt.s.h fa0, fa0
2885
- ; RV64IZFH-NEXT: call tanf
2886
- ; RV64IZFH-NEXT: fcvt.h.s fa0, fa0
2887
- ; RV64IZFH-NEXT: ld ra, 8(sp) # 8-byte Folded Reload
2888
- ; RV64IZFH-NEXT: addi sp, sp, 16
2889
- ; RV64IZFH-NEXT: ret
2890
- ;
2891
- ; RV32IZHINX-LABEL: tan_f16:
2892
- ; RV32IZHINX: # %bb.0:
2893
- ; RV32IZHINX-NEXT: addi sp, sp, -16
2894
- ; RV32IZHINX-NEXT: sw ra, 12(sp) # 4-byte Folded Spill
2895
- ; RV32IZHINX-NEXT: fcvt.s.h a0, a0
2896
- ; RV32IZHINX-NEXT: call tanf
2897
- ; RV32IZHINX-NEXT: fcvt.h.s a0, a0
2898
- ; RV32IZHINX-NEXT: lw ra, 12(sp) # 4-byte Folded Reload
2899
- ; RV32IZHINX-NEXT: addi sp, sp, 16
2900
- ; RV32IZHINX-NEXT: ret
2901
- ;
2902
- ; RV64IZHINX-LABEL: tan_f16:
2903
- ; RV64IZHINX: # %bb.0:
2904
- ; RV64IZHINX-NEXT: addi sp, sp, -16
2905
- ; RV64IZHINX-NEXT: sd ra, 8(sp) # 8-byte Folded Spill
2906
- ; RV64IZHINX-NEXT: fcvt.s.h a0, a0
2907
- ; RV64IZHINX-NEXT: call tanf
2908
- ; RV64IZHINX-NEXT: fcvt.h.s a0, a0
2909
- ; RV64IZHINX-NEXT: ld ra, 8(sp) # 8-byte Folded Reload
2910
- ; RV64IZHINX-NEXT: addi sp, sp, 16
2911
- ; RV64IZHINX-NEXT: ret
2912
- ;
2913
- ; RV32I-LABEL: tan_f16:
2914
- ; RV32I: # %bb.0:
2915
- ; RV32I-NEXT: addi sp, sp, -16
2916
- ; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill
2917
- ; RV32I-NEXT: slli a0, a0, 16
2918
- ; RV32I-NEXT: srli a0, a0, 16
2919
- ; RV32I-NEXT: call __extendhfsf2
2920
- ; RV32I-NEXT: call tanf
2921
- ; RV32I-NEXT: call __truncsfhf2
2922
- ; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload
2923
- ; RV32I-NEXT: addi sp, sp, 16
2924
- ; RV32I-NEXT: ret
2925
- ;
2926
- ; RV64I-LABEL: tan_f16:
2927
- ; RV64I: # %bb.0:
2928
- ; RV64I-NEXT: addi sp, sp, -16
2929
- ; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill
2930
- ; RV64I-NEXT: slli a0, a0, 48
2931
- ; RV64I-NEXT: srli a0, a0, 48
2932
- ; RV64I-NEXT: call __extendhfsf2
2933
- ; RV64I-NEXT: call tanf
2934
- ; RV64I-NEXT: call __truncsfhf2
2935
- ; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload
2936
- ; RV64I-NEXT: addi sp, sp, 16
2937
- ; RV64I-NEXT: ret
2938
- ;
2939
- ; RV32IZFHMIN-LABEL: tan_f16:
2940
- ; RV32IZFHMIN: # %bb.0:
2941
- ; RV32IZFHMIN-NEXT: addi sp, sp, -16
2942
- ; RV32IZFHMIN-NEXT: sw ra, 12(sp) # 4-byte Folded Spill
2943
- ; RV32IZFHMIN-NEXT: fcvt.s.h fa0, fa0
2944
- ; RV32IZFHMIN-NEXT: call tanf
2945
- ; RV32IZFHMIN-NEXT: fcvt.h.s fa0, fa0
2946
- ; RV32IZFHMIN-NEXT: lw ra, 12(sp) # 4-byte Folded Reload
2947
- ; RV32IZFHMIN-NEXT: addi sp, sp, 16
2948
- ; RV32IZFHMIN-NEXT: ret
2949
- ;
2950
- ; RV64IZFHMIN-LABEL: tan_f16:
2951
- ; RV64IZFHMIN: # %bb.0:
2952
- ; RV64IZFHMIN-NEXT: addi sp, sp, -16
2953
- ; RV64IZFHMIN-NEXT: sd ra, 8(sp) # 8-byte Folded Spill
2954
- ; RV64IZFHMIN-NEXT: fcvt.s.h fa0, fa0
2955
- ; RV64IZFHMIN-NEXT: call tanf
2956
- ; RV64IZFHMIN-NEXT: fcvt.h.s fa0, fa0
2957
- ; RV64IZFHMIN-NEXT: ld ra, 8(sp) # 8-byte Folded Reload
2958
- ; RV64IZFHMIN-NEXT: addi sp, sp, 16
2959
- ; RV64IZFHMIN-NEXT: ret
2960
- ;
2961
- ; RV32IZHINXMIN-LABEL: tan_f16:
2962
- ; RV32IZHINXMIN: # %bb.0:
2963
- ; RV32IZHINXMIN-NEXT: addi sp, sp, -16
2964
- ; RV32IZHINXMIN-NEXT: sw ra, 12(sp) # 4-byte Folded Spill
2965
- ; RV32IZHINXMIN-NEXT: fcvt.s.h a0, a0
2966
- ; RV32IZHINXMIN-NEXT: call tanf
2967
- ; RV32IZHINXMIN-NEXT: fcvt.h.s a0, a0
2968
- ; RV32IZHINXMIN-NEXT: lw ra, 12(sp) # 4-byte Folded Reload
2969
- ; RV32IZHINXMIN-NEXT: addi sp, sp, 16
2970
- ; RV32IZHINXMIN-NEXT: ret
2971
- ;
2972
- ; RV64IZHINXMIN-LABEL: tan_f16:
2973
- ; RV64IZHINXMIN: # %bb.0:
2974
- ; RV64IZHINXMIN-NEXT: addi sp, sp, -16
2975
- ; RV64IZHINXMIN-NEXT: sd ra, 8(sp) # 8-byte Folded Spill
2976
- ; RV64IZHINXMIN-NEXT: fcvt.s.h a0, a0
2977
- ; RV64IZHINXMIN-NEXT: call tanf
2978
- ; RV64IZHINXMIN-NEXT: fcvt.h.s a0, a0
2979
- ; RV64IZHINXMIN-NEXT: ld ra, 8(sp) # 8-byte Folded Reload
2980
- ; RV64IZHINXMIN-NEXT: addi sp, sp, 16
2981
- ; RV64IZHINXMIN-NEXT: ret
2982
- %1 = call half @llvm.tan.f16 (half %a )
2983
- ret half %1
2984
- }
0 commit comments