Skip to content

Commit dae9cf3

Browse files
committed
[RISCV] Move scalar llvm.exp10 tests into half/float/double-intrinsics.ll. NFC
Improves coverage for more configurations.
1 parent 2e94698 commit dae9cf3

File tree

4 files changed

+343
-207
lines changed

4 files changed

+343
-207
lines changed

llvm/test/CodeGen/RISCV/double-intrinsics.ll

Lines changed: 77 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -453,6 +453,45 @@ define double @exp2_f64(double %a) nounwind {
453453
ret double %1
454454
}
455455

456+
define double @exp10_f64(double %a) nounwind {
457+
; CHECKIFD-LABEL: exp10_f64:
458+
; CHECKIFD: # %bb.0:
459+
; CHECKIFD-NEXT: tail exp10
460+
;
461+
; RV32IZFINXZDINX-LABEL: exp10_f64:
462+
; RV32IZFINXZDINX: # %bb.0:
463+
; RV32IZFINXZDINX-NEXT: addi sp, sp, -16
464+
; RV32IZFINXZDINX-NEXT: sw ra, 12(sp) # 4-byte Folded Spill
465+
; RV32IZFINXZDINX-NEXT: call exp10
466+
; RV32IZFINXZDINX-NEXT: lw ra, 12(sp) # 4-byte Folded Reload
467+
; RV32IZFINXZDINX-NEXT: addi sp, sp, 16
468+
; RV32IZFINXZDINX-NEXT: ret
469+
;
470+
; RV64IZFINXZDINX-LABEL: exp10_f64:
471+
; RV64IZFINXZDINX: # %bb.0:
472+
; RV64IZFINXZDINX-NEXT: tail exp10
473+
;
474+
; RV32I-LABEL: exp10_f64:
475+
; RV32I: # %bb.0:
476+
; RV32I-NEXT: addi sp, sp, -16
477+
; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill
478+
; RV32I-NEXT: call exp10
479+
; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload
480+
; RV32I-NEXT: addi sp, sp, 16
481+
; RV32I-NEXT: ret
482+
;
483+
; RV64I-LABEL: exp10_f64:
484+
; RV64I: # %bb.0:
485+
; RV64I-NEXT: addi sp, sp, -16
486+
; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill
487+
; RV64I-NEXT: call exp10
488+
; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload
489+
; RV64I-NEXT: addi sp, sp, 16
490+
; RV64I-NEXT: ret
491+
%1 = call double @llvm.exp10.f64(double %a)
492+
ret double %1
493+
}
494+
456495
declare double @llvm.log.f64(double)
457496

458497
define double @log_f64(double %a) nounwind {
@@ -844,16 +883,16 @@ define double @floor_f64(double %a) nounwind {
844883
;
845884
; RV64IFD-LABEL: floor_f64:
846885
; RV64IFD: # %bb.0:
847-
; RV64IFD-NEXT: lui a0, %hi(.LCPI17_0)
848-
; RV64IFD-NEXT: fld fa5, %lo(.LCPI17_0)(a0)
886+
; RV64IFD-NEXT: lui a0, %hi(.LCPI18_0)
887+
; RV64IFD-NEXT: fld fa5, %lo(.LCPI18_0)(a0)
849888
; RV64IFD-NEXT: fabs.d fa4, fa0
850889
; RV64IFD-NEXT: flt.d a0, fa4, fa5
851-
; RV64IFD-NEXT: beqz a0, .LBB17_2
890+
; RV64IFD-NEXT: beqz a0, .LBB18_2
852891
; RV64IFD-NEXT: # %bb.1:
853892
; RV64IFD-NEXT: fcvt.l.d a0, fa0, rdn
854893
; RV64IFD-NEXT: fcvt.d.l fa5, a0, rdn
855894
; RV64IFD-NEXT: fsgnj.d fa0, fa5, fa0
856-
; RV64IFD-NEXT: .LBB17_2:
895+
; RV64IFD-NEXT: .LBB18_2:
857896
; RV64IFD-NEXT: ret
858897
;
859898
; RV32IZFINXZDINX-LABEL: floor_f64:
@@ -871,12 +910,12 @@ define double @floor_f64(double %a) nounwind {
871910
; RV64IZFINXZDINX-NEXT: slli a1, a1, 52
872911
; RV64IZFINXZDINX-NEXT: fabs.d a2, a0
873912
; RV64IZFINXZDINX-NEXT: flt.d a1, a2, a1
874-
; RV64IZFINXZDINX-NEXT: beqz a1, .LBB17_2
913+
; RV64IZFINXZDINX-NEXT: beqz a1, .LBB18_2
875914
; RV64IZFINXZDINX-NEXT: # %bb.1:
876915
; RV64IZFINXZDINX-NEXT: fcvt.l.d a1, a0, rdn
877916
; RV64IZFINXZDINX-NEXT: fcvt.d.l a1, a1, rdn
878917
; RV64IZFINXZDINX-NEXT: fsgnj.d a0, a1, a0
879-
; RV64IZFINXZDINX-NEXT: .LBB17_2:
918+
; RV64IZFINXZDINX-NEXT: .LBB18_2:
880919
; RV64IZFINXZDINX-NEXT: ret
881920
;
882921
; RV32I-LABEL: floor_f64:
@@ -909,16 +948,16 @@ define double @ceil_f64(double %a) nounwind {
909948
;
910949
; RV64IFD-LABEL: ceil_f64:
911950
; RV64IFD: # %bb.0:
912-
; RV64IFD-NEXT: lui a0, %hi(.LCPI18_0)
913-
; RV64IFD-NEXT: fld fa5, %lo(.LCPI18_0)(a0)
951+
; RV64IFD-NEXT: lui a0, %hi(.LCPI19_0)
952+
; RV64IFD-NEXT: fld fa5, %lo(.LCPI19_0)(a0)
914953
; RV64IFD-NEXT: fabs.d fa4, fa0
915954
; RV64IFD-NEXT: flt.d a0, fa4, fa5
916-
; RV64IFD-NEXT: beqz a0, .LBB18_2
955+
; RV64IFD-NEXT: beqz a0, .LBB19_2
917956
; RV64IFD-NEXT: # %bb.1:
918957
; RV64IFD-NEXT: fcvt.l.d a0, fa0, rup
919958
; RV64IFD-NEXT: fcvt.d.l fa5, a0, rup
920959
; RV64IFD-NEXT: fsgnj.d fa0, fa5, fa0
921-
; RV64IFD-NEXT: .LBB18_2:
960+
; RV64IFD-NEXT: .LBB19_2:
922961
; RV64IFD-NEXT: ret
923962
;
924963
; RV32IZFINXZDINX-LABEL: ceil_f64:
@@ -936,12 +975,12 @@ define double @ceil_f64(double %a) nounwind {
936975
; RV64IZFINXZDINX-NEXT: slli a1, a1, 52
937976
; RV64IZFINXZDINX-NEXT: fabs.d a2, a0
938977
; RV64IZFINXZDINX-NEXT: flt.d a1, a2, a1
939-
; RV64IZFINXZDINX-NEXT: beqz a1, .LBB18_2
978+
; RV64IZFINXZDINX-NEXT: beqz a1, .LBB19_2
940979
; RV64IZFINXZDINX-NEXT: # %bb.1:
941980
; RV64IZFINXZDINX-NEXT: fcvt.l.d a1, a0, rup
942981
; RV64IZFINXZDINX-NEXT: fcvt.d.l a1, a1, rup
943982
; RV64IZFINXZDINX-NEXT: fsgnj.d a0, a1, a0
944-
; RV64IZFINXZDINX-NEXT: .LBB18_2:
983+
; RV64IZFINXZDINX-NEXT: .LBB19_2:
945984
; RV64IZFINXZDINX-NEXT: ret
946985
;
947986
; RV32I-LABEL: ceil_f64:
@@ -974,16 +1013,16 @@ define double @trunc_f64(double %a) nounwind {
9741013
;
9751014
; RV64IFD-LABEL: trunc_f64:
9761015
; RV64IFD: # %bb.0:
977-
; RV64IFD-NEXT: lui a0, %hi(.LCPI19_0)
978-
; RV64IFD-NEXT: fld fa5, %lo(.LCPI19_0)(a0)
1016+
; RV64IFD-NEXT: lui a0, %hi(.LCPI20_0)
1017+
; RV64IFD-NEXT: fld fa5, %lo(.LCPI20_0)(a0)
9791018
; RV64IFD-NEXT: fabs.d fa4, fa0
9801019
; RV64IFD-NEXT: flt.d a0, fa4, fa5
981-
; RV64IFD-NEXT: beqz a0, .LBB19_2
1020+
; RV64IFD-NEXT: beqz a0, .LBB20_2
9821021
; RV64IFD-NEXT: # %bb.1:
9831022
; RV64IFD-NEXT: fcvt.l.d a0, fa0, rtz
9841023
; RV64IFD-NEXT: fcvt.d.l fa5, a0, rtz
9851024
; RV64IFD-NEXT: fsgnj.d fa0, fa5, fa0
986-
; RV64IFD-NEXT: .LBB19_2:
1025+
; RV64IFD-NEXT: .LBB20_2:
9871026
; RV64IFD-NEXT: ret
9881027
;
9891028
; RV32IZFINXZDINX-LABEL: trunc_f64:
@@ -1001,12 +1040,12 @@ define double @trunc_f64(double %a) nounwind {
10011040
; RV64IZFINXZDINX-NEXT: slli a1, a1, 52
10021041
; RV64IZFINXZDINX-NEXT: fabs.d a2, a0
10031042
; RV64IZFINXZDINX-NEXT: flt.d a1, a2, a1
1004-
; RV64IZFINXZDINX-NEXT: beqz a1, .LBB19_2
1043+
; RV64IZFINXZDINX-NEXT: beqz a1, .LBB20_2
10051044
; RV64IZFINXZDINX-NEXT: # %bb.1:
10061045
; RV64IZFINXZDINX-NEXT: fcvt.l.d a1, a0, rtz
10071046
; RV64IZFINXZDINX-NEXT: fcvt.d.l a1, a1, rtz
10081047
; RV64IZFINXZDINX-NEXT: fsgnj.d a0, a1, a0
1009-
; RV64IZFINXZDINX-NEXT: .LBB19_2:
1048+
; RV64IZFINXZDINX-NEXT: .LBB20_2:
10101049
; RV64IZFINXZDINX-NEXT: ret
10111050
;
10121051
; RV32I-LABEL: trunc_f64:
@@ -1039,16 +1078,16 @@ define double @rint_f64(double %a) nounwind {
10391078
;
10401079
; RV64IFD-LABEL: rint_f64:
10411080
; RV64IFD: # %bb.0:
1042-
; RV64IFD-NEXT: lui a0, %hi(.LCPI20_0)
1043-
; RV64IFD-NEXT: fld fa5, %lo(.LCPI20_0)(a0)
1081+
; RV64IFD-NEXT: lui a0, %hi(.LCPI21_0)
1082+
; RV64IFD-NEXT: fld fa5, %lo(.LCPI21_0)(a0)
10441083
; RV64IFD-NEXT: fabs.d fa4, fa0
10451084
; RV64IFD-NEXT: flt.d a0, fa4, fa5
1046-
; RV64IFD-NEXT: beqz a0, .LBB20_2
1085+
; RV64IFD-NEXT: beqz a0, .LBB21_2
10471086
; RV64IFD-NEXT: # %bb.1:
10481087
; RV64IFD-NEXT: fcvt.l.d a0, fa0
10491088
; RV64IFD-NEXT: fcvt.d.l fa5, a0
10501089
; RV64IFD-NEXT: fsgnj.d fa0, fa5, fa0
1051-
; RV64IFD-NEXT: .LBB20_2:
1090+
; RV64IFD-NEXT: .LBB21_2:
10521091
; RV64IFD-NEXT: ret
10531092
;
10541093
; RV32IZFINXZDINX-LABEL: rint_f64:
@@ -1066,12 +1105,12 @@ define double @rint_f64(double %a) nounwind {
10661105
; RV64IZFINXZDINX-NEXT: slli a1, a1, 52
10671106
; RV64IZFINXZDINX-NEXT: fabs.d a2, a0
10681107
; RV64IZFINXZDINX-NEXT: flt.d a1, a2, a1
1069-
; RV64IZFINXZDINX-NEXT: beqz a1, .LBB20_2
1108+
; RV64IZFINXZDINX-NEXT: beqz a1, .LBB21_2
10701109
; RV64IZFINXZDINX-NEXT: # %bb.1:
10711110
; RV64IZFINXZDINX-NEXT: fcvt.l.d a1, a0
10721111
; RV64IZFINXZDINX-NEXT: fcvt.d.l a1, a1
10731112
; RV64IZFINXZDINX-NEXT: fsgnj.d a0, a1, a0
1074-
; RV64IZFINXZDINX-NEXT: .LBB20_2:
1113+
; RV64IZFINXZDINX-NEXT: .LBB21_2:
10751114
; RV64IZFINXZDINX-NEXT: ret
10761115
;
10771116
; RV32I-LABEL: rint_f64:
@@ -1145,16 +1184,16 @@ define double @round_f64(double %a) nounwind {
11451184
;
11461185
; RV64IFD-LABEL: round_f64:
11471186
; RV64IFD: # %bb.0:
1148-
; RV64IFD-NEXT: lui a0, %hi(.LCPI22_0)
1149-
; RV64IFD-NEXT: fld fa5, %lo(.LCPI22_0)(a0)
1187+
; RV64IFD-NEXT: lui a0, %hi(.LCPI23_0)
1188+
; RV64IFD-NEXT: fld fa5, %lo(.LCPI23_0)(a0)
11501189
; RV64IFD-NEXT: fabs.d fa4, fa0
11511190
; RV64IFD-NEXT: flt.d a0, fa4, fa5
1152-
; RV64IFD-NEXT: beqz a0, .LBB22_2
1191+
; RV64IFD-NEXT: beqz a0, .LBB23_2
11531192
; RV64IFD-NEXT: # %bb.1:
11541193
; RV64IFD-NEXT: fcvt.l.d a0, fa0, rmm
11551194
; RV64IFD-NEXT: fcvt.d.l fa5, a0, rmm
11561195
; RV64IFD-NEXT: fsgnj.d fa0, fa5, fa0
1157-
; RV64IFD-NEXT: .LBB22_2:
1196+
; RV64IFD-NEXT: .LBB23_2:
11581197
; RV64IFD-NEXT: ret
11591198
;
11601199
; RV32IZFINXZDINX-LABEL: round_f64:
@@ -1172,12 +1211,12 @@ define double @round_f64(double %a) nounwind {
11721211
; RV64IZFINXZDINX-NEXT: slli a1, a1, 52
11731212
; RV64IZFINXZDINX-NEXT: fabs.d a2, a0
11741213
; RV64IZFINXZDINX-NEXT: flt.d a1, a2, a1
1175-
; RV64IZFINXZDINX-NEXT: beqz a1, .LBB22_2
1214+
; RV64IZFINXZDINX-NEXT: beqz a1, .LBB23_2
11761215
; RV64IZFINXZDINX-NEXT: # %bb.1:
11771216
; RV64IZFINXZDINX-NEXT: fcvt.l.d a1, a0, rmm
11781217
; RV64IZFINXZDINX-NEXT: fcvt.d.l a1, a1, rmm
11791218
; RV64IZFINXZDINX-NEXT: fsgnj.d a0, a1, a0
1180-
; RV64IZFINXZDINX-NEXT: .LBB22_2:
1219+
; RV64IZFINXZDINX-NEXT: .LBB23_2:
11811220
; RV64IZFINXZDINX-NEXT: ret
11821221
;
11831222
; RV32I-LABEL: round_f64:
@@ -1210,16 +1249,16 @@ define double @roundeven_f64(double %a) nounwind {
12101249
;
12111250
; RV64IFD-LABEL: roundeven_f64:
12121251
; RV64IFD: # %bb.0:
1213-
; RV64IFD-NEXT: lui a0, %hi(.LCPI23_0)
1214-
; RV64IFD-NEXT: fld fa5, %lo(.LCPI23_0)(a0)
1252+
; RV64IFD-NEXT: lui a0, %hi(.LCPI24_0)
1253+
; RV64IFD-NEXT: fld fa5, %lo(.LCPI24_0)(a0)
12151254
; RV64IFD-NEXT: fabs.d fa4, fa0
12161255
; RV64IFD-NEXT: flt.d a0, fa4, fa5
1217-
; RV64IFD-NEXT: beqz a0, .LBB23_2
1256+
; RV64IFD-NEXT: beqz a0, .LBB24_2
12181257
; RV64IFD-NEXT: # %bb.1:
12191258
; RV64IFD-NEXT: fcvt.l.d a0, fa0, rne
12201259
; RV64IFD-NEXT: fcvt.d.l fa5, a0, rne
12211260
; RV64IFD-NEXT: fsgnj.d fa0, fa5, fa0
1222-
; RV64IFD-NEXT: .LBB23_2:
1261+
; RV64IFD-NEXT: .LBB24_2:
12231262
; RV64IFD-NEXT: ret
12241263
;
12251264
; RV32IZFINXZDINX-LABEL: roundeven_f64:
@@ -1237,12 +1276,12 @@ define double @roundeven_f64(double %a) nounwind {
12371276
; RV64IZFINXZDINX-NEXT: slli a1, a1, 52
12381277
; RV64IZFINXZDINX-NEXT: fabs.d a2, a0
12391278
; RV64IZFINXZDINX-NEXT: flt.d a1, a2, a1
1240-
; RV64IZFINXZDINX-NEXT: beqz a1, .LBB23_2
1279+
; RV64IZFINXZDINX-NEXT: beqz a1, .LBB24_2
12411280
; RV64IZFINXZDINX-NEXT: # %bb.1:
12421281
; RV64IZFINXZDINX-NEXT: fcvt.l.d a1, a0, rne
12431282
; RV64IZFINXZDINX-NEXT: fcvt.d.l a1, a1, rne
12441283
; RV64IZFINXZDINX-NEXT: fsgnj.d a0, a1, a0
1245-
; RV64IZFINXZDINX-NEXT: .LBB23_2:
1284+
; RV64IZFINXZDINX-NEXT: .LBB24_2:
12461285
; RV64IZFINXZDINX-NEXT: ret
12471286
;
12481287
; RV32I-LABEL: roundeven_f64:
@@ -1524,11 +1563,11 @@ define i1 @isnan_d_fpclass(double %x) {
15241563
; RV32I-NEXT: slli a1, a1, 1
15251564
; RV32I-NEXT: srli a1, a1, 1
15261565
; RV32I-NEXT: lui a2, 524032
1527-
; RV32I-NEXT: beq a1, a2, .LBB29_2
1566+
; RV32I-NEXT: beq a1, a2, .LBB30_2
15281567
; RV32I-NEXT: # %bb.1:
15291568
; RV32I-NEXT: slt a0, a2, a1
15301569
; RV32I-NEXT: ret
1531-
; RV32I-NEXT: .LBB29_2:
1570+
; RV32I-NEXT: .LBB30_2:
15321571
; RV32I-NEXT: snez a0, a0
15331572
; RV32I-NEXT: ret
15341573
;

0 commit comments

Comments
 (0)