Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / CodeGen / X86 / rem_crash.ll
blob05a613c8adb805722cc208aba135f838f8bac5b0
1 ; RUN: llc < %s -mtriple=i686--
2 ; RUN: llc < %s -mtriple=x86_64--
4 define i8 @test_minsize_uu8(i8 %x) minsize optsize {
5 entry:
6   %0 = udiv i8 %x, 10
7   %1 = urem i8 %x, 10
8   %res = add i8 %0, %1
9   ret i8 %res
12 define i8 @test_minsize_ss8(i8 %x) minsize optsize {
13 entry:
14   %0 = sdiv i8 %x, 10
15   %1 = srem i8 %x, 10
16   %res = add i8 %0, %1
17   ret i8 %res
20 define i8 @test_minsize_us8(i8 %x) minsize optsize {
21 entry:
22   %0 = udiv i8 %x, 10
23   %1 = srem i8 %x, 10
24   %res = add i8 %0, %1
25   ret i8 %res
28 define i8 @test_minsize_su8(i8 %x) minsize optsize {
29 entry:
30   %0 = sdiv i8 %x, 10
31   %1 = urem i8 %x, 10
32   %res = add i8 %0, %1
33   ret i8 %res
36 define i16 @test_minsize_uu16(i16 %x) minsize optsize {
37 entry:
38   %0 = udiv i16 %x, 10
39   %1 = urem i16 %x, 10
40   %res = add i16 %0, %1
41   ret i16 %res
44 define i16 @test_minsize_ss16(i16 %x) minsize optsize {
45 entry:
46   %0 = sdiv i16 %x, 10
47   %1 = srem i16 %x, 10
48   %res = add i16 %0, %1
49   ret i16 %res
52 define i16 @test_minsize_us16(i16 %x) minsize optsize {
53 entry:
54   %0 = udiv i16 %x, 10
55   %1 = srem i16 %x, 10
56   %res = add i16 %0, %1
57   ret i16 %res
60 define i16 @test_minsize_su16(i16 %x) minsize optsize {
61 entry:
62   %0 = sdiv i16 %x, 10
63   %1 = urem i16 %x, 10
64   %res = add i16 %0, %1
65   ret i16 %res
68 define i32 @test_minsize_uu32(i32 %x) minsize optsize {
69 entry:
70   %0 = udiv i32 %x, 10
71   %1 = urem i32 %x, 10
72   %res = add i32 %0, %1
73   ret i32 %res
76 define i32 @test_minsize_ss32(i32 %x) minsize optsize {
77 entry:
78   %0 = sdiv i32 %x, 10
79   %1 = srem i32 %x, 10
80   %res = add i32 %0, %1
81   ret i32 %res
84 define i32 @test_minsize_us32(i32 %x) minsize optsize {
85 entry:
86   %0 = udiv i32 %x, 10
87   %1 = srem i32 %x, 10
88   %res = add i32 %0, %1
89   ret i32 %res
92 define i32 @test_minsize_su32(i32 %x) minsize optsize {
93 entry:
94   %0 = sdiv i32 %x, 10
95   %1 = urem i32 %x, 10
96   %res = add i32 %0, %1
97   ret i32 %res
100 define i64 @test_minsize_uu64(i64 %x) minsize optsize {
101 entry:
102   %0 = udiv i64 %x, 10
103   %1 = urem i64 %x, 10
104   %res = add i64 %0, %1
105   ret i64 %res
108 define i64 @test_minsize_ss64(i64 %x) minsize optsize {
109 entry:
110   %0 = sdiv i64 %x, 10
111   %1 = srem i64 %x, 10
112   %res = add i64 %0, %1
113   ret i64 %res
116 define i64 @test_minsize_us64(i64 %x) minsize optsize {
117 entry:
118   %0 = udiv i64 %x, 10
119   %1 = srem i64 %x, 10
120   %res = add i64 %0, %1
121   ret i64 %res
124 define i64 @test_minsize_su64(i64 %x) minsize optsize {
125 entry:
126   %0 = sdiv i64 %x, 10
127   %1 = urem i64 %x, 10
128   %res = add i64 %0, %1
129   ret i64 %res
132 define i8 @test_uu8(i8 %x) optsize {
133 entry:
134   %0 = udiv i8 %x, 10
135   %1 = urem i8 %x, 10
136   %res = add i8 %0, %1
137   ret i8 %res
140 define i8 @test_ss8(i8 %x) optsize {
141 entry:
142   %0 = sdiv i8 %x, 10
143   %1 = srem i8 %x, 10
144   %res = add i8 %0, %1
145   ret i8 %res
148 define i8 @test_us8(i8 %x) optsize {
149 entry:
150   %0 = udiv i8 %x, 10
151   %1 = srem i8 %x, 10
152   %res = add i8 %0, %1
153   ret i8 %res
156 define i8 @test_su8(i8 %x) optsize {
157 entry:
158   %0 = sdiv i8 %x, 10
159   %1 = urem i8 %x, 10
160   %res = add i8 %0, %1
161   ret i8 %res
164 define i16 @test_uu16(i16 %x) optsize {
165 entry:
166   %0 = udiv i16 %x, 10
167   %1 = urem i16 %x, 10
168   %res = add i16 %0, %1
169   ret i16 %res
172 define i16 @test_ss16(i16 %x) optsize {
173 entry:
174   %0 = sdiv i16 %x, 10
175   %1 = srem i16 %x, 10
176   %res = add i16 %0, %1
177   ret i16 %res
180 define i16 @test_us16(i16 %x) optsize {
181 entry:
182   %0 = udiv i16 %x, 10
183   %1 = srem i16 %x, 10
184   %res = add i16 %0, %1
185   ret i16 %res
188 define i16 @test_su16(i16 %x) optsize {
189 entry:
190   %0 = sdiv i16 %x, 10
191   %1 = urem i16 %x, 10
192   %res = add i16 %0, %1
193   ret i16 %res
196 define i32 @test_uu32(i32 %x) optsize {
197 entry:
198   %0 = udiv i32 %x, 10
199   %1 = urem i32 %x, 10
200   %res = add i32 %0, %1
201   ret i32 %res
204 define i32 @test_ss32(i32 %x) optsize {
205 entry:
206   %0 = sdiv i32 %x, 10
207   %1 = srem i32 %x, 10
208   %res = add i32 %0, %1
209   ret i32 %res
212 define i32 @test_us32(i32 %x) optsize {
213 entry:
214   %0 = udiv i32 %x, 10
215   %1 = srem i32 %x, 10
216   %res = add i32 %0, %1
217   ret i32 %res
220 define i32 @test_su32(i32 %x) optsize {
221 entry:
222   %0 = sdiv i32 %x, 10
223   %1 = urem i32 %x, 10
224   %res = add i32 %0, %1
225   ret i32 %res
228 define i64 @test_uu64(i64 %x) optsize {
229 entry:
230   %0 = udiv i64 %x, 10
231   %1 = urem i64 %x, 10
232   %res = add i64 %0, %1
233   ret i64 %res
236 define i64 @test_ss64(i64 %x) optsize {
237 entry:
238   %0 = sdiv i64 %x, 10
239   %1 = srem i64 %x, 10
240   %res = add i64 %0, %1
241   ret i64 %res
244 define i64 @test_us64(i64 %x) optsize {
245 entry:
246   %0 = udiv i64 %x, 10
247   %1 = srem i64 %x, 10
248   %res = add i64 %0, %1
249   ret i64 %res
252 define i64 @test_su64(i64 %x) optsize {
253 entry:
254   %0 = sdiv i64 %x, 10
255   %1 = urem i64 %x, 10
256   %res = add i64 %0, %1
257   ret i64 %res