• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; RUN: opt -instsimplify -S < %s | FileCheck %s
2
3; @test0
4; CHECK: ret i64 undef
5define i64 @test0() {
6  %r = mul i64 undef, undef
7  ret i64 %r
8}
9
10; @test1
11; CHECK: ret i64 undef
12define i64 @test1() {
13  %r = mul i64 3, undef
14  ret i64 %r
15}
16
17; @test2
18; CHECK: ret i64 undef
19define i64 @test2() {
20  %r = mul i64 undef, 3
21  ret i64 %r
22}
23
24; @test3
25; CHECK: ret i64 0
26define i64 @test3() {
27  %r = mul i64 undef, 6
28  ret i64 %r
29}
30
31; @test4
32; CHECK: ret i64 0
33define i64 @test4() {
34  %r = mul i64 6, undef
35  ret i64 %r
36}
37
38; @test5
39; CHECK: ret i64 undef
40define i64 @test5() {
41  %r = and i64 undef, undef
42  ret i64 %r
43}
44
45; @test6
46; CHECK: ret i64 undef
47define i64 @test6() {
48  %r = or i64 undef, undef
49  ret i64 %r
50}
51
52; @test7
53; CHECK: ret i64 undef
54define i64 @test7() {
55  %r = udiv i64 undef, 1
56  ret i64 %r
57}
58
59; @test8
60; CHECK: ret i64 undef
61define i64 @test8() {
62  %r = sdiv i64 undef, 1
63  ret i64 %r
64}
65
66; @test9
67; CHECK: ret i64 0
68define i64 @test9() {
69  %r = urem i64 undef, 1
70  ret i64 %r
71}
72
73; @test10
74; CHECK: ret i64 0
75define i64 @test10() {
76  %r = srem i64 undef, 1
77  ret i64 %r
78}
79
80; @test11
81; CHECK: ret i64 undef
82define i64 @test11() {
83  %r = shl i64 undef, undef
84  ret i64 %r
85}
86
87; @test12
88; CHECK: ret i64 undef
89define i64 @test12() {
90  %r = ashr i64 undef, undef
91  ret i64 %r
92}
93
94; @test13
95; CHECK: ret i64 undef
96define i64 @test13() {
97  %r = lshr i64 undef, undef
98  ret i64 %r
99}
100
101; @test14
102; CHECK: ret i1 undef
103define i1 @test14() {
104  %r = icmp slt i64 undef, undef
105  ret i1 %r
106}
107
108; @test15
109; CHECK: ret i1 undef
110define i1 @test15() {
111  %r = icmp ult i64 undef, undef
112  ret i1 %r
113}
114
115; @test16
116; CHECK: ret i64 undef
117define i64 @test16(i64 %a) {
118  %r = select i1 undef, i64 %a, i64 undef
119  ret i64 %r
120}
121
122; @test17
123; CHECK: ret i64 undef
124define i64 @test17(i64 %a) {
125  %r = select i1 undef, i64 undef, i64 %a
126  ret i64 %r
127}
128