blob: f9cc32e8f292c9cd3a93f4b5ba4e1f756e3fd8ce [file] [log] [blame]
Scott Michel0e5665b2007-12-19 21:17:42 +00001; RUN: llvm-as -o - %s | llc -march=cellspu > %t1.s
2; RUN: llvm-as -o - %s | llc -march=cellspu -mattr=large_mem > %t2.s
3; RUN: grep shufb %t1.s | count 27 &&
4; RUN: grep lqa %t1.s | count 27 &&
5; RUN: grep lqx %t2.s | count 27 &&
6; RUN: grep space %t1.s | count 8 &&
7; RUN: grep byte %t1.s | count 424
Scott Michel9de5d0d2008-01-11 02:53:15 +00008target datalayout = "E-p:32:32:128-f64:64:128-f32:32:128-i64:32:128-i32:32:128-i16:16:128-i8:8:128-i1:8:128-a0:0:128-v128:128:128-s0:128:128"
9target triple = "spu"
Scott Michel0e5665b2007-12-19 21:17:42 +000010
11define i32 @i32_extract_0(<4 x i32> %v) {
12entry:
13 %a = extractelement <4 x i32> %v, i32 0
14 ret i32 %a
15}
16
17define i32 @i32_extract_1(<4 x i32> %v) {
18entry:
19 %a = extractelement <4 x i32> %v, i32 1
20 ret i32 %a
21}
22
23define i32 @i32_extract_2(<4 x i32> %v) {
24entry:
25 %a = extractelement <4 x i32> %v, i32 2
26 ret i32 %a
27}
28
29define i32 @i32_extract_3(<4 x i32> %v) {
30entry:
31 %a = extractelement <4 x i32> %v, i32 3
32 ret i32 %a
33}
34
35define i16 @i16_extract_0(<8 x i16> %v) {
36entry:
37 %a = extractelement <8 x i16> %v, i32 0
38 ret i16 %a
39}
40
41define i16 @i16_extract_1(<8 x i16> %v) {
42entry:
43 %a = extractelement <8 x i16> %v, i32 1
44 ret i16 %a
45}
46
47define i16 @i16_extract_2(<8 x i16> %v) {
48entry:
49 %a = extractelement <8 x i16> %v, i32 2
50 ret i16 %a
51}
52
53define i16 @i16_extract_3(<8 x i16> %v) {
54entry:
55 %a = extractelement <8 x i16> %v, i32 3
56 ret i16 %a
57}
58
59define i16 @i16_extract_4(<8 x i16> %v) {
60entry:
61 %a = extractelement <8 x i16> %v, i32 4
62 ret i16 %a
63}
64
65define i16 @i16_extract_5(<8 x i16> %v) {
66entry:
67 %a = extractelement <8 x i16> %v, i32 5
68 ret i16 %a
69}
70
71define i16 @i16_extract_6(<8 x i16> %v) {
72entry:
73 %a = extractelement <8 x i16> %v, i32 6
74 ret i16 %a
75}
76
77define i16 @i16_extract_7(<8 x i16> %v) {
78entry:
79 %a = extractelement <8 x i16> %v, i32 7
80 ret i16 %a
81}
82
83define i8 @i8_extract_0(<16 x i8> %v) {
84entry:
85 %a = extractelement <16 x i8> %v, i32 0
86 ret i8 %a
87}
88
89define i8 @i8_extract_1(<16 x i8> %v) {
90entry:
91 %a = extractelement <16 x i8> %v, i32 1
92 ret i8 %a
93}
94
95define i8 @i8_extract_2(<16 x i8> %v) {
96entry:
97 %a = extractelement <16 x i8> %v, i32 2
98 ret i8 %a
99}
100
101define i8 @i8_extract_3(<16 x i8> %v) {
102entry:
103 %a = extractelement <16 x i8> %v, i32 3
104 ret i8 %a
105}
106
107define i8 @i8_extract_4(<16 x i8> %v) {
108entry:
109 %a = extractelement <16 x i8> %v, i32 4
110 ret i8 %a
111}
112
113define i8 @i8_extract_5(<16 x i8> %v) {
114entry:
115 %a = extractelement <16 x i8> %v, i32 5
116 ret i8 %a
117}
118
119define i8 @i8_extract_6(<16 x i8> %v) {
120entry:
121 %a = extractelement <16 x i8> %v, i32 6
122 ret i8 %a
123}
124
125define i8 @i8_extract_7(<16 x i8> %v) {
126entry:
127 %a = extractelement <16 x i8> %v, i32 7
128 ret i8 %a
129}
130
131define i8 @i8_extract_8(<16 x i8> %v) {
132entry:
133 %a = extractelement <16 x i8> %v, i32 8
134 ret i8 %a
135}
136
137define i8 @i8_extract_9(<16 x i8> %v) {
138entry:
139 %a = extractelement <16 x i8> %v, i32 9
140 ret i8 %a
141}
142
143define i8 @i8_extract_10(<16 x i8> %v) {
144entry:
145 %a = extractelement <16 x i8> %v, i32 10
146 ret i8 %a
147}
148
149define i8 @i8_extract_11(<16 x i8> %v) {
150entry:
151 %a = extractelement <16 x i8> %v, i32 11
152 ret i8 %a
153}
154
155define i8 @i8_extract_12(<16 x i8> %v) {
156entry:
157 %a = extractelement <16 x i8> %v, i32 12
158 ret i8 %a
159}
160
161define i8 @i8_extract_13(<16 x i8> %v) {
162entry:
163 %a = extractelement <16 x i8> %v, i32 13
164 ret i8 %a
165}
166
167define i8 @i8_extract_14(<16 x i8> %v) {
168entry:
169 %a = extractelement <16 x i8> %v, i32 14
170 ret i8 %a
171}
172
173define i8 @i8_extract_15(<16 x i8> %v) {
174entry:
175 %a = extractelement <16 x i8> %v, i32 15
176 ret i8 %a
177}