OLD | NEW |
---|---|
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 -i %s --args -O2 --verbose none \ |
4 ; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -filetype=obj \ | 4 ; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -filetype=obj \ |
5 ; RUN: | llvm-objdump -d --symbolize -x86-asm-syntax=intel - | FileCheck %s | 5 ; RUN: | llvm-objdump -d --symbolize -x86-asm-syntax=intel - | FileCheck %s |
6 ; RUN: %p2i -i %s --args -Om1 --verbose none \ | 6 ; RUN: %p2i -i %s --args -Om1 --verbose none \ |
7 ; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -filetype=obj \ | 7 ; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -filetype=obj \ |
8 ; RUN: | llvm-objdump -d --symbolize -x86-asm-syntax=intel - | FileCheck %s | 8 ; RUN: | llvm-objdump -d --symbolize -x86-asm-syntax=intel - | FileCheck %s |
9 ; RUN: %p2i -i %s --args --verbose none | FileCheck --check-prefix=ERRORS %s | 9 ; RUN: %p2i -i %s --args --verbose none | FileCheck --check-prefix=ERRORS %s |
10 ; RUN: %p2i -i %s --insts | %szdiff %s | FileCheck --check-prefix=DUMP %s | 10 ; RUN: %p2i -i %s --insts | %szdiff %s | FileCheck --check-prefix=DUMP %s |
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
152 define internal i32 @srem8BitConst(i32 %a, i32 %b) { | 152 define internal i32 @srem8BitConst(i32 %a, i32 %b) { |
153 entry: | 153 entry: |
154 %a_8 = trunc i32 %a to i8 | 154 %a_8 = trunc i32 %a to i8 |
155 %srem = srem i8 %a_8, 123 | 155 %srem = srem i8 %a_8, 123 |
156 %ret = zext i8 %srem to i32 | 156 %ret = zext i8 %srem to i32 |
157 ret i32 %ret | 157 ret i32 %ret |
158 } | 158 } |
159 ; CHECK-LABEL: srem8BitConst | 159 ; CHECK-LABEL: srem8BitConst |
160 ; CHECK: idiv {{[abcd]l|byte ptr}} | 160 ; CHECK: idiv {{[abcd]l|byte ptr}} |
161 | 161 |
162 define internal i32 @shl8Bit(i32 %a, i32 %b) { | |
163 entry: | |
164 %a_8 = trunc i32 %a to i8 | |
165 %b_8 = trunc i32 %b to i8 | |
166 %shl = shl i8 %b_8, %a_8 | |
167 %ret = zext i8 %shl to i32 | |
168 ret i32 %ret | |
169 } | |
170 ; CHECK-LABEL: shl8Bit | |
171 ; CHECK: shl {{[abcd]l|byte ptr}}, cl | |
Jim Stichnoth
2014/10/02 20:35:17
Maybe [abd]l ? Shouldn't be shifting cl by cl.
jvoung (off chromium)
2014/10/02 22:04:13
Ah right -- Done
| |
172 | |
173 define internal i32 @shl8BitConst(i32 %a, i32 %b) { | |
174 entry: | |
175 %a_8 = trunc i32 %a to i8 | |
176 %shl = shl i8 %a_8, 6 | |
177 %ret = zext i8 %shl to i32 | |
178 ret i32 %ret | |
179 } | |
180 ; CHECK-LABEL: shl8BitConst | |
181 ; CHECK: shl {{[abcd]l|byte ptr}}, 6 | |
182 | |
183 define internal i32 @lshr8Bit(i32 %a, i32 %b) { | |
184 entry: | |
185 %a_8 = trunc i32 %a to i8 | |
186 %b_8 = trunc i32 %b to i8 | |
187 %lshr = lshr i8 %b_8, %a_8 | |
188 %ret = zext i8 %lshr to i32 | |
189 ret i32 %ret | |
190 } | |
191 ; CHECK-LABEL: lshr8Bit | |
192 ; CHECK: shr {{[abcd]l|byte ptr}}, cl | |
193 | |
194 define internal i32 @lshr8BitConst(i32 %a, i32 %b) { | |
195 entry: | |
196 %a_8 = trunc i32 %a to i8 | |
197 %lshr = lshr i8 %a_8, 6 | |
198 %ret = zext i8 %lshr to i32 | |
199 ret i32 %ret | |
200 } | |
201 ; CHECK-LABEL: lshr8BitConst | |
202 ; CHECK: shr {{[abcd]l|byte ptr}}, 6 | |
203 | |
204 define internal i32 @ashr8Bit(i32 %a, i32 %b) { | |
205 entry: | |
206 %a_8 = trunc i32 %a to i8 | |
207 %b_8 = trunc i32 %b to i8 | |
208 %ashr = ashr i8 %b_8, %a_8 | |
209 %ret = zext i8 %ashr to i32 | |
210 ret i32 %ret | |
211 } | |
212 ; CHECK-LABEL: ashr8Bit | |
213 ; CHECK: sar {{[abcd]l|byte ptr}}, cl | |
214 | |
215 define internal i32 @ashr8BitConst(i32 %a, i32 %b) { | |
216 entry: | |
217 %a_8 = trunc i32 %a to i8 | |
218 %ashr = ashr i8 %a_8, 6 | |
219 %ret = zext i8 %ashr to i32 | |
220 ret i32 %ret | |
221 } | |
222 ; CHECK-LABEL: ashr8BitConst | |
223 ; CHECK: sar {{[abcd]l|byte ptr}}, 6 | |
224 | |
162 | 225 |
163 ; ERRORS-NOT: ICE translation error | 226 ; ERRORS-NOT: ICE translation error |
164 ; DUMP-NOT: SZ | 227 ; DUMP-NOT: SZ |
OLD | NEW |