Chromium Code Reviews| 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 |