blob: 9f5a1e82f5f89a74f6ece051e753124e263c04c2 [file] [log] [blame]
Dan Gohman30cb6dd2011-07-01 00:42:17 +00001; 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}
Dan Gohman68c0dbc2011-07-01 01:03:43 +0000100
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}
Dan Gohman71d05032011-11-04 18:32:42 +0000128
129; @test18
130; CHECK: ret i64 undef
131define i64 @test18(i64 %a) {
132 %r = call i64 (i64)* undef(i64 %a)
133 ret i64 %r
134}