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

Side by Side Diff: tests_lit/llvm2ice_tests/vector-select.ll

Issue 650573002: emitIAS for the couple of blend instructions. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: remove isa Created 6 years, 2 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
« no previous file with comments | « src/assembler_ia32.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 ; This file tests support for the select instruction with vector valued inputs. 1 ; This file tests support for the select instruction with vector valued inputs.
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 -O2 -mattr=sse4.1 --verbose none \ 9 ; RUN: %p2i -i %s --args -O2 -mattr=sse4.1 --verbose none \
10 ; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -filetype=obj \ 10 ; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -filetype=obj \
11 ; RUN: | llvm-objdump -d --symbolize -x86-asm-syntax=intel - \ 11 ; RUN: | llvm-objdump -d --symbolize -x86-asm-syntax=intel - \
12 ; RUN: | FileCheck --check-prefix=SSE41 %s 12 ; RUN: | FileCheck --check-prefix=SSE41 %s
13 ; RUN: %p2i -i %s --args -Om1 -mattr=sse4.1 --verbose none \ 13 ; RUN: %p2i -i %s --args -Om1 -mattr=sse4.1 --verbose none \
14 ; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -filetype=obj \ 14 ; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -filetype=obj \
15 ; RUN: | llvm-objdump -d --symbolize -x86-asm-syntax=intel - \ 15 ; RUN: | llvm-objdump -d --symbolize -x86-asm-syntax=intel - \
16 ; RUN: | FileCheck --check-prefix=SSE41 %s 16 ; RUN: | FileCheck --check-prefix=SSE41 %s
17 ; RUN: %p2i -i %s --args --verbose none | FileCheck --check-prefix=ERRORS %s 17 ; RUN: %p2i -i %s --args --verbose none | FileCheck --check-prefix=ERRORS %s
18 ; RUN: %p2i -i %s --insts | %szdiff %s | FileCheck --check-prefix=DUMP %s 18 ; RUN: %p2i -i %s --insts | %szdiff %s | FileCheck --check-prefix=DUMP %s
19 19
20 define <16 x i8> @test_select_v16i8(<16 x i1> %cond, <16 x i8> %arg1, <16 x i8> %arg2) { 20 define <16 x i8> @test_select_v16i8(<16 x i1> %cond, <16 x i8> %arg1, <16 x i8> %arg2) {
21 entry: 21 entry:
22 %res = select <16 x i1> %cond, <16 x i8> %arg1, <16 x i8> %arg2 22 %res = select <16 x i1> %cond, <16 x i8> %arg1, <16 x i8> %arg2
23 ret <16 x i8> %res 23 ret <16 x i8> %res
24 ; CHECK-LABEL: test_select_v16i8: 24 ; CHECK-LABEL: test_select_v16i8:
25 ; CHECK: pand 25 ; CHECK: pand
26 ; CHECK: pandn 26 ; CHECK: pandn
27 ; CHECK: por 27 ; CHECK: por
28 28
29 ; SSE41-LABEL: test_select_v16i8: 29 ; SSE41-LABEL: test_select_v16i8:
30 ; SSE41: pblendvb 30 ; SSE41: pblendvb xmm{{[0-7]}}, {{xmm[0-7]|xmmword}}
31 } 31 }
32 32
33 define <16 x i1> @test_select_v16i1(<16 x i1> %cond, <16 x i1> %arg1, <16 x i1> %arg2) { 33 define <16 x i1> @test_select_v16i1(<16 x i1> %cond, <16 x i1> %arg1, <16 x i1> %arg2) {
34 entry: 34 entry:
35 %res = select <16 x i1> %cond, <16 x i1> %arg1, <16 x i1> %arg2 35 %res = select <16 x i1> %cond, <16 x i1> %arg1, <16 x i1> %arg2
36 ret <16 x i1> %res 36 ret <16 x i1> %res
37 ; CHECK-LABEL: test_select_v16i1: 37 ; CHECK-LABEL: test_select_v16i1:
38 ; CHECK: pand 38 ; CHECK: pand
39 ; CHECK: pandn 39 ; CHECK: pandn
40 ; CHECK: por 40 ; CHECK: por
41 41
42 ; SSE41-LABEL: test_select_v16i1: 42 ; SSE41-LABEL: test_select_v16i1:
43 ; SSE41: pblendvb 43 ; SSE41: pblendvb xmm{{[0-7]}}, {{xmm[0-7]|xmmword}}
44 } 44 }
45 45
46 define <8 x i16> @test_select_v8i16(<8 x i1> %cond, <8 x i16> %arg1, <8 x i16> % arg2) { 46 define <8 x i16> @test_select_v8i16(<8 x i1> %cond, <8 x i16> %arg1, <8 x i16> % arg2) {
47 entry: 47 entry:
48 %res = select <8 x i1> %cond, <8 x i16> %arg1, <8 x i16> %arg2 48 %res = select <8 x i1> %cond, <8 x i16> %arg1, <8 x i16> %arg2
49 ret <8 x i16> %res 49 ret <8 x i16> %res
50 ; CHECK-LABEL: test_select_v8i16: 50 ; CHECK-LABEL: test_select_v8i16:
51 ; CHECK: pand 51 ; CHECK: pand
52 ; CHECK: pandn 52 ; CHECK: pandn
53 ; CHECK: por 53 ; CHECK: por
54 54
55 ; SSE41-LABEL: test_select_v8i16: 55 ; SSE41-LABEL: test_select_v8i16:
56 ; SSE41: pblendvb 56 ; SSE41: pblendvb xmm{{[0-7]}}, {{xmm[0-7]|xmmword}}
57 } 57 }
58 58
59 define <8 x i1> @test_select_v8i1(<8 x i1> %cond, <8 x i1> %arg1, <8 x i1> %arg2 ) { 59 define <8 x i1> @test_select_v8i1(<8 x i1> %cond, <8 x i1> %arg1, <8 x i1> %arg2 ) {
60 entry: 60 entry:
61 %res = select <8 x i1> %cond, <8 x i1> %arg1, <8 x i1> %arg2 61 %res = select <8 x i1> %cond, <8 x i1> %arg1, <8 x i1> %arg2
62 ret <8 x i1> %res 62 ret <8 x i1> %res
63 ; CHECK-LABEL: test_select_v8i1: 63 ; CHECK-LABEL: test_select_v8i1:
64 ; CHECK: pand 64 ; CHECK: pand
65 ; CHECK: pandn 65 ; CHECK: pandn
66 ; CHECK: por 66 ; CHECK: por
67 67
68 ; SSE41-LABEL: test_select_v8i1: 68 ; SSE41-LABEL: test_select_v8i1:
69 ; SSE41: pblendvb 69 ; SSE41: pblendvb xmm{{[0-7]}}, {{xmm[0-7]|xmmword}}
70 } 70 }
71 71
72 define <4 x i32> @test_select_v4i32(<4 x i1> %cond, <4 x i32> %arg1, <4 x i32> % arg2) { 72 define <4 x i32> @test_select_v4i32(<4 x i1> %cond, <4 x i32> %arg1, <4 x i32> % arg2) {
73 entry: 73 entry:
74 %res = select <4 x i1> %cond, <4 x i32> %arg1, <4 x i32> %arg2 74 %res = select <4 x i1> %cond, <4 x i32> %arg1, <4 x i32> %arg2
75 ret <4 x i32> %res 75 ret <4 x i32> %res
76 ; CHECK-LABEL: test_select_v4i32: 76 ; CHECK-LABEL: test_select_v4i32:
77 ; CHECK: pand 77 ; CHECK: pand
78 ; CHECK: pandn 78 ; CHECK: pandn
79 ; CHECK: por 79 ; CHECK: por
80 80
81 ; SSE41-LABEL: test_select_v4i32: 81 ; SSE41-LABEL: test_select_v4i32:
82 ; SSE41: pslld xmm0, 31 82 ; SSE41: pslld xmm0, 31
83 ; SSE41: blendvps 83 ; SSE41: blendvps xmm{{[0-7]}}, {{xmm[0-7]|xmmword}}
84 } 84 }
85 85
86 define <4 x float> @test_select_v4f32(<4 x i1> %cond, <4 x float> %arg1, <4 x fl oat> %arg2) { 86 define <4 x float> @test_select_v4f32(<4 x i1> %cond, <4 x float> %arg1, <4 x fl oat> %arg2) {
87 entry: 87 entry:
88 %res = select <4 x i1> %cond, <4 x float> %arg1, <4 x float> %arg2 88 %res = select <4 x i1> %cond, <4 x float> %arg1, <4 x float> %arg2
89 ret <4 x float> %res 89 ret <4 x float> %res
90 ; CHECK-LABEL: test_select_v4f32: 90 ; CHECK-LABEL: test_select_v4f32:
91 ; CHECK: pand 91 ; CHECK: pand
92 ; CHECK: pandn 92 ; CHECK: pandn
93 ; CHECK: por 93 ; CHECK: por
94 94
95 ; SSE41-LABEL: test_select_v4f32: 95 ; SSE41-LABEL: test_select_v4f32:
96 ; SSE41: pslld xmm0, 31 96 ; SSE41: pslld xmm0, 31
97 ; SSE41: blendvps 97 ; SSE41: blendvps xmm{{[0-7]}}, {{xmm[0-7]|xmmword}}
98 } 98 }
99 99
100 define <4 x i1> @test_select_v4i1(<4 x i1> %cond, <4 x i1> %arg1, <4 x i1> %arg2 ) { 100 define <4 x i1> @test_select_v4i1(<4 x i1> %cond, <4 x i1> %arg1, <4 x i1> %arg2 ) {
101 entry: 101 entry:
102 %res = select <4 x i1> %cond, <4 x i1> %arg1, <4 x i1> %arg2 102 %res = select <4 x i1> %cond, <4 x i1> %arg1, <4 x i1> %arg2
103 ret <4 x i1> %res 103 ret <4 x i1> %res
104 ; CHECK-LABEL: test_select_v4i1: 104 ; CHECK-LABEL: test_select_v4i1:
105 ; CHECK: pand 105 ; CHECK: pand
106 ; CHECK: pandn 106 ; CHECK: pandn
107 ; CHECK: por 107 ; CHECK: por
108 108
109 ; SSE41-LABEL: test_select_v4i1: 109 ; SSE41-LABEL: test_select_v4i1:
110 ; SSE41: pslld xmm0, 31 110 ; SSE41: pslld xmm0, 31
111 ; SSE41: blendvps 111 ; SSE41: blendvps xmm{{[0-7]}}, {{xmm[0-7]|xmmword}}
112 } 112 }
113 113
114 ; ERRORS-NOT: ICE translation error 114 ; ERRORS-NOT: ICE translation error
115 ; DUMP-NOT: SZ 115 ; DUMP-NOT: SZ
OLDNEW
« no previous file with comments | « src/assembler_ia32.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698