Skip to content

Commit 57b3d5e

Browse files
committed
[ValueTracking] Add additional snan/qnan tests. NFC.
1 parent 937a405 commit 57b3d5e

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

llvm/test/Transforms/InstCombine/known-bits.ll

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1504,6 +1504,8 @@ define i32 @test_inf_zero_only(float nofpclass(nan norm sub) %x) {
15041504
ret i32 %and
15051505
}
15061506

1507+
1508+
15071509
define i1 @test_simplify_icmp(i32 %x) {
15081510
; CHECK-LABEL: @test_simplify_icmp(
15091511
; CHECK-NEXT: ret i1 false
@@ -1515,6 +1517,46 @@ define i1 @test_simplify_icmp(i32 %x) {
15151517
ret i1 %cmp
15161518
}
15171519

1520+
define i32 @test_snan_quiet_bit1(float nofpclass(sub norm inf qnan) %x) {
1521+
; CHECK-LABEL: @test_snan_quiet_bit1(
1522+
; CHECK-NEXT: ret i32 0
1523+
;
1524+
%bits = bitcast float %x to i32
1525+
%masked = and i32 %bits, 4194304
1526+
ret i32 %masked
1527+
}
1528+
1529+
define i32 @test_snan_quiet_bit2(float nofpclass(sub norm inf qnan) %x) {
1530+
; CHECK-LABEL: @test_snan_quiet_bit2(
1531+
; CHECK-NEXT: [[BITS:%.*]] = bitcast float [[X:%.*]] to i32
1532+
; CHECK-NEXT: [[MASKED:%.*]] = and i32 [[BITS]], 2097152
1533+
; CHECK-NEXT: ret i32 [[MASKED]]
1534+
;
1535+
%bits = bitcast float %x to i32
1536+
%masked = and i32 %bits, 2097152
1537+
ret i32 %masked
1538+
}
1539+
1540+
define i32 @test_qnan_quiet_bit1(float nofpclass(sub norm inf snan) %x) {
1541+
; CHECK-LABEL: @test_qnan_quiet_bit1(
1542+
; CHECK-NEXT: [[BITS:%.*]] = bitcast float [[X:%.*]] to i32
1543+
; CHECK-NEXT: [[MASKED:%.*]] = and i32 [[BITS]], 4194304
1544+
; CHECK-NEXT: ret i32 [[MASKED]]
1545+
;
1546+
%bits = bitcast float %x to i32
1547+
%masked = and i32 %bits, 4194304
1548+
ret i32 %masked
1549+
}
1550+
1551+
define i32 @test_qnan_quiet_bit2(float nofpclass(sub norm inf snan) %x) {
1552+
; CHECK-LABEL: @test_qnan_quiet_bit2(
1553+
; CHECK-NEXT: ret i32 0
1554+
;
1555+
%bits = bitcast float %x to i32
1556+
%masked = and i32 %bits, 2097152
1557+
ret i32 %masked
1558+
}
1559+
15181560
define i16 @test_simplify_mask(i32 %ui, float %x) {
15191561
; CHECK-LABEL: @test_simplify_mask(
15201562
; CHECK-NEXT: [[CONV:%.*]] = uitofp i32 [[UI:%.*]] to float

0 commit comments

Comments
 (0)