diff options
Diffstat (limited to 'test/Transforms/InstSimplify/undef.ll')
-rw-r--r-- | test/Transforms/InstSimplify/undef.ll | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/test/Transforms/InstSimplify/undef.ll b/test/Transforms/InstSimplify/undef.ll index 181c2ef..e8b49b6 100644 --- a/test/Transforms/InstSimplify/undef.ll +++ b/test/Transforms/InstSimplify/undef.ll @@ -160,3 +160,108 @@ define <4 x i8> @test19(<4 x i8> %a) { %b = shl <4 x i8> %a, <i8 8, i8 9, i8 undef, i8 -1> ret <4 x i8> %b } + +; CHECK-LABEL: @test20 +; CHECK: ret i32 undef +define i32 @test20(i32 %a) { + %b = udiv i32 %a, 0 + ret i32 %b +} + +; CHECK-LABEL: @test21 +; CHECK: ret i32 undef +define i32 @test21(i32 %a) { + %b = sdiv i32 %a, 0 + ret i32 %b +} + +; CHECK-LABEL: @test22 +; CHECK: ret i32 undef +define i32 @test22(i32 %a) { + %b = ashr exact i32 undef, %a + ret i32 %b +} + +; CHECK-LABEL: @test23 +; CHECK: ret i32 undef +define i32 @test23(i32 %a) { + %b = lshr exact i32 undef, %a + ret i32 %b +} + +; CHECK-LABEL: @test24 +; CHECK: ret i32 undef +define i32 @test24() { + %b = udiv i32 undef, 0 + ret i32 %b +} + +; CHECK-LABEL: @test25 +; CHECK: ret i32 undef +define i32 @test25() { + %b = lshr i32 0, undef + ret i32 %b +} + +; CHECK-LABEL: @test26 +; CHECK: ret i32 undef +define i32 @test26() { + %b = ashr i32 0, undef + ret i32 %b +} + +; CHECK-LABEL: @test27 +; CHECK: ret i32 undef +define i32 @test27() { + %b = shl i32 0, undef + ret i32 %b +} + +; CHECK-LABEL: @test28 +; CHECK: ret i32 undef +define i32 @test28(i32 %a) { + %b = shl nsw i32 undef, %a + ret i32 %b +} + +; CHECK-LABEL: @test29 +; CHECK: ret i32 undef +define i32 @test29(i32 %a) { + %b = shl nuw i32 undef, %a + ret i32 %b +} + +; CHECK-LABEL: @test30 +; CHECK: ret i32 undef +define i32 @test30(i32 %a) { + %b = shl nsw nuw i32 undef, %a + ret i32 %b +} + +; CHECK-LABEL: @test31 +; CHECK: ret i32 0 +define i32 @test31(i32 %a) { + %b = shl i32 undef, %a + ret i32 %b +} + +; CHECK-LABEL: @test32 +; CHECK: ret i32 undef +define i32 @test32(i32 %a) { + %b = shl i32 undef, 0 + ret i32 %b +} + +; CHECK-LABEL: @test33 +; CHECK: ret i32 undef +define i32 @test33(i32 %a) { + %b = ashr i32 undef, 0 + ret i32 %b +} + +; CHECK-LABEL: @test34 +; CHECK: ret i32 undef +define i32 @test34(i32 %a) { + %b = lshr i32 undef, 0 + ret i32 %b +} |