Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(9)

Side by Side Diff: tests_lit/llvm2ice_tests/8bit.pnacl.ll

Issue 914263005: Subzero: switch from llvm-objdump to objdump for lit tests (for LLVM merge) (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 ; This tries to be a comprehensive test of i8 operations. 1 ; This tries to be a comprehensive test of i8 operations.
2 2
3 ; RUN: %p2i -i %s --args -O2 --verbose none \ 3 ; RUN: %p2i --assemble --disassemble -i %s --args -O2 --verbose none \
4 ; RUN: | llvm-mc -triple=i686-none-nacl -filetype=obj \ 4 ; RUN: | FileCheck %s
5 ; RUN: | llvm-objdump -d --symbolize -x86-asm-syntax=intel - | FileCheck %s 5 ; RUN: %p2i --assemble --disassemble -i %s --args -Om1 --verbose none \
6 ; RUN: %p2i -i %s --args -Om1 --verbose none \ 6 ; RUN: | FileCheck %s
7 ; RUN: | llvm-mc -triple=i686-none-nacl -filetype=obj \
8 ; RUN: | llvm-objdump -d --symbolize -x86-asm-syntax=intel - | FileCheck %s
9 7
10 define internal i32 @add8Bit(i32 %a, i32 %b) { 8 define internal i32 @add8Bit(i32 %a, i32 %b) {
11 entry: 9 entry:
12 %a_8 = trunc i32 %a to i8 10 %a_8 = trunc i32 %a to i8
13 %b_8 = trunc i32 %b to i8 11 %b_8 = trunc i32 %b to i8
14 %add = add i8 %b_8, %a_8 12 %add = add i8 %b_8, %a_8
15 %ret = zext i8 %add to i32 13 %ret = zext i8 %add to i32
16 ret i32 %ret 14 ret i32 %ret
17 } 15 }
18 ; CHECK-LABEL: add8Bit 16 ; CHECK-LABEL: add8Bit
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
51 49
52 define internal i32 @mul8Bit(i32 %a, i32 %b) { 50 define internal i32 @mul8Bit(i32 %a, i32 %b) {
53 entry: 51 entry:
54 %a_8 = trunc i32 %a to i8 52 %a_8 = trunc i32 %a to i8
55 %b_8 = trunc i32 %b to i8 53 %b_8 = trunc i32 %b to i8
56 %mul = mul i8 %b_8, %a_8 54 %mul = mul i8 %b_8, %a_8
57 %ret = zext i8 %mul to i32 55 %ret = zext i8 %mul to i32
58 ret i32 %ret 56 ret i32 %ret
59 } 57 }
60 ; CHECK-LABEL: mul8Bit 58 ; CHECK-LABEL: mul8Bit
61 ; CHECK: mul {{[abcd]l|byte ptr}} 59 ; CHECK: mul {{[abcd]l|BYTE PTR}}
62 60
63 define internal i32 @mul8BitConst(i32 %a) { 61 define internal i32 @mul8BitConst(i32 %a) {
64 entry: 62 entry:
65 %a_8 = trunc i32 %a to i8 63 %a_8 = trunc i32 %a to i8
66 %mul = mul i8 %a_8, 56 64 %mul = mul i8 %a_8, 56
67 %ret = zext i8 %mul to i32 65 %ret = zext i8 %mul to i32
68 ret i32 %ret 66 ret i32 %ret
69 } 67 }
70 ; CHECK-LABEL: mul8BitConst 68 ; CHECK-LABEL: mul8BitConst
71 ; 8-bit imul only accepts r/m, not imm 69 ; 8-bit imul only accepts r/m, not imm
72 ; CHECK: mov {{.*}}, 56 70 ; CHECK: mov {{.*}},0x38
73 ; CHECK: mul {{[abcd]l|byte ptr}} 71 ; CHECK: mul {{[abcd]l|BYTE PTR}}
74 72
75 define internal i32 @udiv8Bit(i32 %a, i32 %b) { 73 define internal i32 @udiv8Bit(i32 %a, i32 %b) {
76 entry: 74 entry:
77 %a_8 = trunc i32 %a to i8 75 %a_8 = trunc i32 %a to i8
78 %b_8 = trunc i32 %b to i8 76 %b_8 = trunc i32 %b to i8
79 %udiv = udiv i8 %b_8, %a_8 77 %udiv = udiv i8 %b_8, %a_8
80 %ret = zext i8 %udiv to i32 78 %ret = zext i8 %udiv to i32
81 ret i32 %ret 79 ret i32 %ret
82 } 80 }
83 ; CHECK-LABEL: udiv8Bit 81 ; CHECK-LABEL: udiv8Bit
84 ; CHECK: div {{[abcd]l|byte ptr}} 82 ; CHECK: div {{[abcd]l|BYTE PTR}}
85 83
86 define internal i32 @udiv8BitConst(i32 %a) { 84 define internal i32 @udiv8BitConst(i32 %a) {
87 entry: 85 entry:
88 %a_8 = trunc i32 %a to i8 86 %a_8 = trunc i32 %a to i8
89 %udiv = udiv i8 %a_8, 123 87 %udiv = udiv i8 %a_8, 123
90 %ret = zext i8 %udiv to i32 88 %ret = zext i8 %udiv to i32
91 ret i32 %ret 89 ret i32 %ret
92 } 90 }
93 ; CHECK-LABEL: udiv8BitConst 91 ; CHECK-LABEL: udiv8BitConst
94 ; CHECK: div {{[abcd]l|byte ptr}} 92 ; CHECK: div {{[abcd]l|BYTE PTR}}
95 93
96 define internal i32 @urem8Bit(i32 %a, i32 %b) { 94 define internal i32 @urem8Bit(i32 %a, i32 %b) {
97 entry: 95 entry:
98 %a_8 = trunc i32 %a to i8 96 %a_8 = trunc i32 %a to i8
99 %b_8 = trunc i32 %b to i8 97 %b_8 = trunc i32 %b to i8
100 %urem = urem i8 %b_8, %a_8 98 %urem = urem i8 %b_8, %a_8
101 %ret = zext i8 %urem to i32 99 %ret = zext i8 %urem to i32
102 ret i32 %ret 100 ret i32 %ret
103 } 101 }
104 ; CHECK-LABEL: urem8Bit 102 ; CHECK-LABEL: urem8Bit
105 ; CHECK: div {{[abcd]l|byte ptr}} 103 ; CHECK: div {{[abcd]l|BYTE PTR}}
106 104
107 define internal i32 @urem8BitConst(i32 %a) { 105 define internal i32 @urem8BitConst(i32 %a) {
108 entry: 106 entry:
109 %a_8 = trunc i32 %a to i8 107 %a_8 = trunc i32 %a to i8
110 %urem = urem i8 %a_8, 123 108 %urem = urem i8 %a_8, 123
111 %ret = zext i8 %urem to i32 109 %ret = zext i8 %urem to i32
112 ret i32 %ret 110 ret i32 %ret
113 } 111 }
114 ; CHECK-LABEL: urem8BitConst 112 ; CHECK-LABEL: urem8BitConst
115 ; CHECK: div {{[abcd]l|byte ptr}} 113 ; CHECK: div {{[abcd]l|BYTE PTR}}
116 114
117 115
118 define internal i32 @sdiv8Bit(i32 %a, i32 %b) { 116 define internal i32 @sdiv8Bit(i32 %a, i32 %b) {
119 entry: 117 entry:
120 %a_8 = trunc i32 %a to i8 118 %a_8 = trunc i32 %a to i8
121 %b_8 = trunc i32 %b to i8 119 %b_8 = trunc i32 %b to i8
122 %sdiv = sdiv i8 %b_8, %a_8 120 %sdiv = sdiv i8 %b_8, %a_8
123 %ret = zext i8 %sdiv to i32 121 %ret = zext i8 %sdiv to i32
124 ret i32 %ret 122 ret i32 %ret
125 } 123 }
126 ; CHECK-LABEL: sdiv8Bit 124 ; CHECK-LABEL: sdiv8Bit
127 ; CHECK: idiv {{[abcd]l|byte ptr}} 125 ; CHECK: idiv {{[abcd]l|BYTE PTR}}
128 126
129 define internal i32 @sdiv8BitConst(i32 %a) { 127 define internal i32 @sdiv8BitConst(i32 %a) {
130 entry: 128 entry:
131 %a_8 = trunc i32 %a to i8 129 %a_8 = trunc i32 %a to i8
132 %sdiv = sdiv i8 %a_8, 123 130 %sdiv = sdiv i8 %a_8, 123
133 %ret = zext i8 %sdiv to i32 131 %ret = zext i8 %sdiv to i32
134 ret i32 %ret 132 ret i32 %ret
135 } 133 }
136 ; CHECK-LABEL: sdiv8BitConst 134 ; CHECK-LABEL: sdiv8BitConst
137 ; CHECK: idiv {{[abcd]l|byte ptr}} 135 ; CHECK: idiv {{[abcd]l|BYTE PTR}}
138 136
139 define internal i32 @srem8Bit(i32 %a, i32 %b) { 137 define internal i32 @srem8Bit(i32 %a, i32 %b) {
140 entry: 138 entry:
141 %a_8 = trunc i32 %a to i8 139 %a_8 = trunc i32 %a to i8
142 %b_8 = trunc i32 %b to i8 140 %b_8 = trunc i32 %b to i8
143 %srem = srem i8 %b_8, %a_8 141 %srem = srem i8 %b_8, %a_8
144 %ret = zext i8 %srem to i32 142 %ret = zext i8 %srem to i32
145 ret i32 %ret 143 ret i32 %ret
146 } 144 }
147 ; CHECK-LABEL: srem8Bit 145 ; CHECK-LABEL: srem8Bit
148 ; CHECK: idiv {{[abcd]l|byte ptr}} 146 ; CHECK: idiv {{[abcd]l|BYTE PTR}}
149 147
150 define internal i32 @srem8BitConst(i32 %a) { 148 define internal i32 @srem8BitConst(i32 %a) {
151 entry: 149 entry:
152 %a_8 = trunc i32 %a to i8 150 %a_8 = trunc i32 %a to i8
153 %srem = srem i8 %a_8, 123 151 %srem = srem i8 %a_8, 123
154 %ret = zext i8 %srem to i32 152 %ret = zext i8 %srem to i32
155 ret i32 %ret 153 ret i32 %ret
156 } 154 }
157 ; CHECK-LABEL: srem8BitConst 155 ; CHECK-LABEL: srem8BitConst
158 ; CHECK: idiv {{[abcd]l|byte ptr}} 156 ; CHECK: idiv {{[abcd]l|BYTE PTR}}
159 157
160 define internal i32 @shl8Bit(i32 %a, i32 %b) { 158 define internal i32 @shl8Bit(i32 %a, i32 %b) {
161 entry: 159 entry:
162 %a_8 = trunc i32 %a to i8 160 %a_8 = trunc i32 %a to i8
163 %b_8 = trunc i32 %b to i8 161 %b_8 = trunc i32 %b to i8
164 %shl = shl i8 %b_8, %a_8 162 %shl = shl i8 %b_8, %a_8
165 %ret = zext i8 %shl to i32 163 %ret = zext i8 %shl to i32
166 ret i32 %ret 164 ret i32 %ret
167 } 165 }
168 ; CHECK-LABEL: shl8Bit 166 ; CHECK-LABEL: shl8Bit
169 ; CHECK: shl {{[abd]l|byte ptr}}, cl 167 ; CHECK: shl {{[abd]l|BYTE PTR}},cl
170 168
171 define internal i32 @shl8BitConst(i32 %a, i32 %b) { 169 define internal i32 @shl8BitConst(i32 %a, i32 %b) {
172 entry: 170 entry:
173 %a_8 = trunc i32 %a to i8 171 %a_8 = trunc i32 %a to i8
174 %shl = shl i8 %a_8, 6 172 %shl = shl i8 %a_8, 6
175 %ret = zext i8 %shl to i32 173 %ret = zext i8 %shl to i32
176 ret i32 %ret 174 ret i32 %ret
177 } 175 }
178 ; CHECK-LABEL: shl8BitConst 176 ; CHECK-LABEL: shl8BitConst
179 ; CHECK: shl {{[abcd]l|byte ptr}}, 6 177 ; CHECK: shl {{[abcd]l|BYTE PTR}},0x6
180 178
181 define internal i32 @lshr8Bit(i32 %a, i32 %b) { 179 define internal i32 @lshr8Bit(i32 %a, i32 %b) {
182 entry: 180 entry:
183 %a_8 = trunc i32 %a to i8 181 %a_8 = trunc i32 %a to i8
184 %b_8 = trunc i32 %b to i8 182 %b_8 = trunc i32 %b to i8
185 %lshr = lshr i8 %b_8, %a_8 183 %lshr = lshr i8 %b_8, %a_8
186 %ret = zext i8 %lshr to i32 184 %ret = zext i8 %lshr to i32
187 ret i32 %ret 185 ret i32 %ret
188 } 186 }
189 ; CHECK-LABEL: lshr8Bit 187 ; CHECK-LABEL: lshr8Bit
190 ; CHECK: shr {{[abd]l|byte ptr}}, cl 188 ; CHECK: shr {{[abd]l|BYTE PTR}},cl
191 189
192 define internal i32 @lshr8BitConst(i32 %a, i32 %b) { 190 define internal i32 @lshr8BitConst(i32 %a, i32 %b) {
193 entry: 191 entry:
194 %a_8 = trunc i32 %a to i8 192 %a_8 = trunc i32 %a to i8
195 %lshr = lshr i8 %a_8, 6 193 %lshr = lshr i8 %a_8, 6
196 %ret = zext i8 %lshr to i32 194 %ret = zext i8 %lshr to i32
197 ret i32 %ret 195 ret i32 %ret
198 } 196 }
199 ; CHECK-LABEL: lshr8BitConst 197 ; CHECK-LABEL: lshr8BitConst
200 ; CHECK: shr {{[abcd]l|byte ptr}}, 6 198 ; CHECK: shr {{[abcd]l|BYTE PTR}},0x6
201 199
202 define internal i32 @ashr8Bit(i32 %a, i32 %b) { 200 define internal i32 @ashr8Bit(i32 %a, i32 %b) {
203 entry: 201 entry:
204 %a_8 = trunc i32 %a to i8 202 %a_8 = trunc i32 %a to i8
205 %b_8 = trunc i32 %b to i8 203 %b_8 = trunc i32 %b to i8
206 %ashr = ashr i8 %b_8, %a_8 204 %ashr = ashr i8 %b_8, %a_8
207 %ret = zext i8 %ashr to i32 205 %ret = zext i8 %ashr to i32
208 ret i32 %ret 206 ret i32 %ret
209 } 207 }
210 ; CHECK-LABEL: ashr8Bit 208 ; CHECK-LABEL: ashr8Bit
211 ; CHECK: sar {{[abd]l|byte ptr}}, cl 209 ; CHECK: sar {{[abd]l|BYTE PTR}},cl
212 210
213 define internal i32 @ashr8BitConst(i32 %a, i32 %b) { 211 define internal i32 @ashr8BitConst(i32 %a, i32 %b) {
214 entry: 212 entry:
215 %a_8 = trunc i32 %a to i8 213 %a_8 = trunc i32 %a to i8
216 %ashr = ashr i8 %a_8, 6 214 %ashr = ashr i8 %a_8, 6
217 %ret = zext i8 %ashr to i32 215 %ret = zext i8 %ashr to i32
218 ret i32 %ret 216 ret i32 %ret
219 } 217 }
220 ; CHECK-LABEL: ashr8BitConst 218 ; CHECK-LABEL: ashr8BitConst
221 ; CHECK: sar {{[abcd]l|byte ptr}}, 6 219 ; CHECK: sar {{[abcd]l|BYTE PTR}},0x6
222 220
223 define internal i32 @icmp8Bit(i32 %a, i32 %b) { 221 define internal i32 @icmp8Bit(i32 %a, i32 %b) {
224 entry: 222 entry:
225 %a_8 = trunc i32 %a to i8 223 %a_8 = trunc i32 %a to i8
226 %b_8 = trunc i32 %b to i8 224 %b_8 = trunc i32 %b to i8
227 %icmp = icmp ne i8 %b_8, %a_8 225 %icmp = icmp ne i8 %b_8, %a_8
228 %ret = zext i1 %icmp to i32 226 %ret = zext i1 %icmp to i32
229 ret i32 %ret 227 ret i32 %ret
230 } 228 }
231 ; CHECK-LABEL: icmp8Bit 229 ; CHECK-LABEL: icmp8Bit
232 ; CHECK: cmp {{[abcd]l|byte ptr}} 230 ; CHECK: cmp {{[abcd]l|BYTE PTR}}
233 231
234 define internal i32 @icmp8BitConst(i32 %a) { 232 define internal i32 @icmp8BitConst(i32 %a) {
235 entry: 233 entry:
236 %a_8 = trunc i32 %a to i8 234 %a_8 = trunc i32 %a to i8
237 %icmp = icmp ne i8 %a_8, 123 235 %icmp = icmp ne i8 %a_8, 123
238 %ret = zext i1 %icmp to i32 236 %ret = zext i1 %icmp to i32
239 ret i32 %ret 237 ret i32 %ret
240 } 238 }
241 ; CHECK-LABEL: icmp8BitConst 239 ; CHECK-LABEL: icmp8BitConst
242 ; CHECK: cmp {{[abcd]l|byte ptr}} 240 ; CHECK: cmp {{[abcd]l|BYTE PTR}}
243 241
244 define internal i32 @icmp8BitConstSwapped(i32 %a) { 242 define internal i32 @icmp8BitConstSwapped(i32 %a) {
245 entry: 243 entry:
246 %a_8 = trunc i32 %a to i8 244 %a_8 = trunc i32 %a to i8
247 %icmp = icmp ne i8 123, %a_8 245 %icmp = icmp ne i8 123, %a_8
248 %ret = zext i1 %icmp to i32 246 %ret = zext i1 %icmp to i32
249 ret i32 %ret 247 ret i32 %ret
250 } 248 }
251 ; CHECK-LABEL: icmp8BitConstSwapped 249 ; CHECK-LABEL: icmp8BitConstSwapped
252 ; CHECK: cmp {{[abcd]l|byte ptr}} 250 ; CHECK: cmp {{[abcd]l|BYTE PTR}}
253 251
254 define internal i32 @icmp8BitMem(i32 %a, i32 %b_iptr) { 252 define internal i32 @icmp8BitMem(i32 %a, i32 %b_iptr) {
255 entry: 253 entry:
256 %a_8 = trunc i32 %a to i8 254 %a_8 = trunc i32 %a to i8
257 %bptr = inttoptr i32 %b_iptr to i8* 255 %bptr = inttoptr i32 %b_iptr to i8*
258 %b_8 = load i8* %bptr, align 1 256 %b_8 = load i8* %bptr, align 1
259 %icmp = icmp ne i8 %b_8, %a_8 257 %icmp = icmp ne i8 %b_8, %a_8
260 %ret = zext i1 %icmp to i32 258 %ret = zext i1 %icmp to i32
261 ret i32 %ret 259 ret i32 %ret
262 } 260 }
263 ; CHECK-LABEL: icmp8BitMem 261 ; CHECK-LABEL: icmp8BitMem
264 ; CHECK: cmp {{[abcd]l|byte ptr}} 262 ; CHECK: cmp {{[abcd]l|BYTE PTR}}
265 263
266 define internal i32 @icmp8BitMemSwapped(i32 %a, i32 %b_iptr) { 264 define internal i32 @icmp8BitMemSwapped(i32 %a, i32 %b_iptr) {
267 entry: 265 entry:
268 %a_8 = trunc i32 %a to i8 266 %a_8 = trunc i32 %a to i8
269 %bptr = inttoptr i32 %b_iptr to i8* 267 %bptr = inttoptr i32 %b_iptr to i8*
270 %b_8 = load i8* %bptr, align 1 268 %b_8 = load i8* %bptr, align 1
271 %icmp = icmp ne i8 %a_8, %b_8 269 %icmp = icmp ne i8 %a_8, %b_8
272 %ret = zext i1 %icmp to i32 270 %ret = zext i1 %icmp to i32
273 ret i32 %ret 271 ret i32 %ret
274 } 272 }
275 ; CHECK-LABEL: icmp8BitMemSwapped 273 ; CHECK-LABEL: icmp8BitMemSwapped
276 ; CHECK: cmp {{[abcd]l|byte ptr}} 274 ; CHECK: cmp {{[abcd]l|BYTE PTR}}
277 275
278 define internal i32 @selectI8Var(i32 %a, i32 %b) { 276 define internal i32 @selectI8Var(i32 %a, i32 %b) {
279 entry: 277 entry:
280 %a_8 = trunc i32 %a to i8 278 %a_8 = trunc i32 %a to i8
281 %b_8 = trunc i32 %b to i8 279 %b_8 = trunc i32 %b to i8
282 %cmp = icmp slt i8 %a_8, %b_8 280 %cmp = icmp slt i8 %a_8, %b_8
283 %ret = select i1 %cmp, i8 %a_8, i8 %b_8 281 %ret = select i1 %cmp, i8 %a_8, i8 %b_8
284 %ret_ext = zext i8 %ret to i32 282 %ret_ext = zext i8 %ret to i32
285 ret i32 %ret_ext 283 ret i32 %ret_ext
286 } 284 }
(...skipping 30 matching lines...) Expand all
317 %merge4 = phi i8 [ %trunc3, %entry ], [ %trunc8_8, %next ] 315 %merge4 = phi i8 [ %trunc3, %entry ], [ %trunc8_8, %next ]
318 %res1 = select i1 %merge1, i8 %merge2, i8 %merge3 316 %res1 = select i1 %merge1, i8 %merge2, i8 %merge3
319 %res2 = select i1 %merge1, i8 %merge4, i8 %merge5 317 %res2 = select i1 %merge1, i8 %merge4, i8 %merge5
320 %res1_2 = select i1 %merge1, i8 %res1, i8 %res2 318 %res1_2 = select i1 %merge1, i8 %res1, i8 %res2
321 %res123 = select i1 %merge1, i8 %merge6, i8 %res1_2 319 %res123 = select i1 %merge1, i8 %merge6, i8 %res1_2
322 %result = zext i8 %res123 to i32 320 %result = zext i8 %res123 to i32
323 ret i32 %result 321 ret i32 %result
324 } 322 }
325 ; CHECK-LABEL: testPhi8 323 ; CHECK-LABEL: testPhi8
326 ; This assumes there will be some copy from an 8-bit register / stack slot. 324 ; This assumes there will be some copy from an 8-bit register / stack slot.
327 ; CHECK-DAG: mov {{.*}}, {{[a-d]}}l 325 ; CHECK-DAG: mov {{.*}},{{[a-d]}}l
328 ; CHECK-DAG: mov {{.*}}, byte ptr 326 ; CHECK-DAG: mov {{.*}},BYTE PTR
329 ; CHECK-DAG: mov byte ptr {{.*}} 327 ; CHECK-DAG: mov BYTE PTR {{.*}}
330 328
331 @global8 = internal global [1 x i8] c"\01", align 4 329 @global8 = internal global [1 x i8] c"\01", align 4
332 330
333 define i32 @load_i8(i32 %addr_arg) { 331 define i32 @load_i8(i32 %addr_arg) {
334 entry: 332 entry:
335 %addr = inttoptr i32 %addr_arg to i8* 333 %addr = inttoptr i32 %addr_arg to i8*
336 %ret = load i8* %addr, align 1 334 %ret = load i8* %addr, align 1
337 %ret_ext = zext i8 %ret to i32 335 %ret_ext = zext i8 %ret to i32
338 ret i32 %ret_ext 336 ret i32 %ret_ext
339 } 337 }
340 ; CHECK-LABEL: load_i8 338 ; CHECK-LABEL: load_i8
341 ; CHECK: mov {{[a-d]l}}, byte ptr 339 ; CHECK: mov {{[a-d]l}},BYTE PTR
342 340
343 define i32 @load_i8_global(i32 %addr_arg) { 341 define i32 @load_i8_global(i32 %addr_arg) {
344 entry: 342 entry:
345 %addr = bitcast [1 x i8]* @global8 to i8* 343 %addr = bitcast [1 x i8]* @global8 to i8*
346 %ret = load i8* %addr, align 1 344 %ret = load i8* %addr, align 1
347 %ret_ext = zext i8 %ret to i32 345 %ret_ext = zext i8 %ret to i32
348 ret i32 %ret_ext 346 ret i32 %ret_ext
349 } 347 }
350 ; CHECK-LABEL: load_i8_global 348 ; CHECK-LABEL: load_i8_global
351 ; CHECK: mov {{[a-d]l}}, byte ptr 349 ; CHECK: mov {{[a-d]l}},BYTE PTR
352 350
353 define void @store_i8(i32 %addr_arg, i32 %val) { 351 define void @store_i8(i32 %addr_arg, i32 %val) {
354 entry: 352 entry:
355 %val_trunc = trunc i32 %val to i8 353 %val_trunc = trunc i32 %val to i8
356 %addr = inttoptr i32 %addr_arg to i8* 354 %addr = inttoptr i32 %addr_arg to i8*
357 store i8 %val_trunc, i8* %addr, align 1 355 store i8 %val_trunc, i8* %addr, align 1
358 ret void 356 ret void
359 } 357 }
360 ; CHECK-LABEL: store_i8 358 ; CHECK-LABEL: store_i8
361 ; CHECK: mov byte ptr {{.*}}, {{[a-d]l}} 359 ; CHECK: mov BYTE PTR {{.*}},{{[a-d]l}}
362 360
363 define void @store_i8_const(i32 %addr_arg) { 361 define void @store_i8_const(i32 %addr_arg) {
364 entry: 362 entry:
365 %addr = inttoptr i32 %addr_arg to i8* 363 %addr = inttoptr i32 %addr_arg to i8*
366 store i8 123, i8* %addr, align 1 364 store i8 123, i8* %addr, align 1
367 ret void 365 ret void
368 } 366 }
369 ; CHECK-LABEL: store_i8_const 367 ; CHECK-LABEL: store_i8_const
370 ; CHECK: mov byte ptr {{.*}}, 123 368 ; CHECK: mov BYTE PTR {{.*}},0x7b
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698