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

Side by Side Diff: tests_lit/llvm2ice_tests/strength-reduce.ll

Issue 1531623007: Add option to force filetype=asm for testing (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Function parameters are now pnacl abi compliant. Created 4 years, 11 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 tests various strength reduction operations. 1 ; This tests various strength reduction operations.
2 2
3 ; RUN: %if --need=target_X8632 --command %p2i --filetype=obj --disassemble \ 3 ; RUN: %if --need=target_X8632 --command %p2i --filetype=obj --disassemble \
4 ; RUN: --target x8632 -i %s --args -O2 \ 4 ; RUN: --target x8632 -i %s --args -O2 \
5 ; RUN: | %if --need=target_X8632 --command FileCheck %s 5 ; RUN: | %if --need=target_X8632 --command FileCheck %s
6 6
7 define internal i32 @mul_i32_arg_5(i32 %arg) { 7 define internal i32 @mul_i32_arg_5(i32 %arg) {
8 %result = mul i32 %arg, 5 8 %result = mul i32 %arg, 5
9 ret i32 %result 9 ret i32 %result
10 } 10 }
(...skipping 25 matching lines...) Expand all
36 36
37 define internal i32 @mul_i32_arg_m45(i32 %arg) { 37 define internal i32 @mul_i32_arg_m45(i32 %arg) {
38 %result = mul i32 %arg, -45 38 %result = mul i32 %arg, -45
39 ret i32 %result 39 ret i32 %result
40 } 40 }
41 ; CHECK-LABEL: mul_i32_arg_m45 41 ; CHECK-LABEL: mul_i32_arg_m45
42 ; CHECK-DAG: lea [[REG:e..]],{{\[}}[[REG]]+[[REG]]*8] 42 ; CHECK-DAG: lea [[REG:e..]],{{\[}}[[REG]]+[[REG]]*8]
43 ; CHECK-DAG: lea [[REG]],{{\[}}[[REG]]+[[REG]]*4] 43 ; CHECK-DAG: lea [[REG]],{{\[}}[[REG]]+[[REG]]*4]
44 ; CHECK: neg [[REG]] 44 ; CHECK: neg [[REG]]
45 45
46 define internal i16 @mul_i16_arg_18(i16 %arg) { 46 define internal i32 @mul_i16_arg_18(i32 %arg) {
47 %result = mul i16 %arg, 18 47 %arg.16 = trunc i32 %arg to i16
48 ret i16 %result 48 %result = mul i16 %arg.16, 18
49 %result.i32 = zext i16 %result to i32
50 ret i32 %result.i32
49 } 51 }
50 ; Disassembly will look like "lea ax,[eax+eax*8]".
51 ; CHECK-LABEL: mul_i16_arg_18 52 ; CHECK-LABEL: mul_i16_arg_18
52 ; CHECK-DAG: lea [[REG:..]],{{\[}}e[[REG]]+e[[REG]]*8] 53 ; CHECK: imul
53 ; CHECK-DAG: shl [[REG]],1
54 54
55 define internal i8 @mul_i8_arg_16(i8 %arg) { 55 define internal i32 @mul_i8_arg_16(i32 %arg) {
56 %result = mul i8 %arg, 16 56 %arg.8 = trunc i32 %arg to i8
57 ret i8 %result 57 %result = mul i8 %arg.8, 16
58 %result.i32 = zext i8 %result to i32
59 ret i32 %result.i32
58 } 60 }
59 ; CHECK-LABEL: mul_i8_arg_16 61 ; CHECK-LABEL: mul_i8_arg_16
60 ; CHECK: shl {{.*}},0x4 62 ; CHECK: shl {{.*}},0x4
61 63
62 define internal i8 @mul_i8_arg_18(i8 %arg) { 64 define internal i32 @mul_i8_arg_18(i32 %arg) {
63 %result = mul i8 %arg, 18 65 %arg.8 = trunc i32 %arg to i8
64 ret i8 %result 66 %result = mul i8 %arg.8, 18
67 %result.i32 = zext i8 %result to i32
68 ret i32 %result.i32
65 } 69 }
66 ; CHECK-LABEL: mul_i8_arg_18 70 ; CHECK-LABEL: mul_i8_arg_18
67 ; CHECK: imul 71 ; CHECK: imul
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698