| ; RUN: opt -instsimplify -S < %s | FileCheck %s | |
| ; @test0 | |
| ; CHECK: ret i64 undef | |
| define i64 @test0() { | |
| %r = mul i64 undef, undef | |
| ret i64 %r | |
| } | |
| ; @test1 | |
| ; CHECK: ret i64 undef | |
| define i64 @test1() { | |
| %r = mul i64 3, undef | |
| ret i64 %r | |
| } | |
| ; @test2 | |
| ; CHECK: ret i64 undef | |
| define i64 @test2() { | |
| %r = mul i64 undef, 3 | |
| ret i64 %r | |
| } | |
| ; @test3 | |
| ; CHECK: ret i64 0 | |
| define i64 @test3() { | |
| %r = mul i64 undef, 6 | |
| ret i64 %r | |
| } | |
| ; @test4 | |
| ; CHECK: ret i64 0 | |
| define i64 @test4() { | |
| %r = mul i64 6, undef | |
| ret i64 %r | |
| } | |
| ; @test5 | |
| ; CHECK: ret i64 undef | |
| define i64 @test5() { | |
| %r = and i64 undef, undef | |
| ret i64 %r | |
| } | |
| ; @test6 | |
| ; CHECK: ret i64 undef | |
| define i64 @test6() { | |
| %r = or i64 undef, undef | |
| ret i64 %r | |
| } | |
| ; @test7 | |
| ; CHECK: ret i64 undef | |
| define i64 @test7() { | |
| %r = udiv i64 undef, 1 | |
| ret i64 %r | |
| } | |
| ; @test8 | |
| ; CHECK: ret i64 undef | |
| define i64 @test8() { | |
| %r = sdiv i64 undef, 1 | |
| ret i64 %r | |
| } | |
| ; @test9 | |
| ; CHECK: ret i64 0 | |
| define i64 @test9() { | |
| %r = urem i64 undef, 1 | |
| ret i64 %r | |
| } | |
| ; @test10 | |
| ; CHECK: ret i64 0 | |
| define i64 @test10() { | |
| %r = srem i64 undef, 1 | |
| ret i64 %r | |
| } | |
| ; @test11 | |
| ; CHECK: ret i64 undef | |
| define i64 @test11() { | |
| %r = shl i64 undef, undef | |
| ret i64 %r | |
| } | |
| ; @test12 | |
| ; CHECK: ret i64 undef | |
| define i64 @test12() { | |
| %r = ashr i64 undef, undef | |
| ret i64 %r | |
| } | |
| ; @test13 | |
| ; CHECK: ret i64 undef | |
| define i64 @test13() { | |
| %r = lshr i64 undef, undef | |
| ret i64 %r | |
| } | |
| ; @test14 | |
| ; CHECK: ret i1 undef | |
| define i1 @test14() { | |
| %r = icmp slt i64 undef, undef | |
| ret i1 %r | |
| } | |
| ; @test15 | |
| ; CHECK: ret i1 undef | |
| define i1 @test15() { | |
| %r = icmp ult i64 undef, undef | |
| ret i1 %r | |
| } | |
| ; @test16 | |
| ; CHECK: ret i64 undef | |
| define i64 @test16(i64 %a) { | |
| %r = select i1 undef, i64 %a, i64 undef | |
| ret i64 %r | |
| } | |
| ; @test17 | |
| ; CHECK: ret i64 undef | |
| define i64 @test17(i64 %a) { | |
| %r = select i1 undef, i64 undef, i64 %a | |
| ret i64 %r | |
| } |