Lines Matching full:select
7 ; CHECK-NEXT: [[SELECT_V:%.*]] = select i1 [[CMP]], ptr [[P]], ptr [[Q]]
8 ; CHECK-NEXT: [[SELECT:%.*]] = getelementptr i8, ptr [[SELECT_V]], i64 16
9 ; CHECK-NEXT: ret ptr [[SELECT]]
14 %select = select i1 %cmp, ptr %gep1, ptr %gep2
15 ret ptr %select
21 ; CHECK-NEXT: [[SELECT_V:%.*]] = select i1 [[CMP]], ptr [[P]], ptr [[Q]]
22 ; CHECK-NEXT: [[SELECT:%.*]] = getelementptr i8, ptr [[SELECT_V]], i64 16
23 ; CHECK-NEXT: ret ptr [[SELECT]]
28 %select = select i1 %cmp, ptr %gep1, ptr %gep2
29 ret ptr %select
35 ; CHECK-NEXT: [[SELECT_V:%.*]] = select i1 [[CMP]], ptr [[P]], ptr [[Q]]
36 ; CHECK-NEXT: [[SELECT:%.*]] = getelementptr i8, ptr [[SELECT_V]], i64 16
37 ; CHECK-NEXT: ret ptr [[SELECT]]
42 %select = select i1 %cmp, ptr %gep1, ptr %gep2
43 ret ptr %select
49 ; CHECK-NEXT: [[SELECT_V:%.*]] = select i1 [[CMP]], ptr [[P]], ptr [[Q]]
50 ; CHECK-NEXT: [[SELECT:%.*]] = getelementptr inbounds nuw i8, ptr [[SELECT_V]], i64 16
51 ; CHECK-NEXT: ret ptr [[SELECT]]
56 %select = select i1 %cmp, ptr %gep1, ptr %gep2
57 ret ptr %select
63 ; CHECK-NEXT: [[SELECT:%.*]] = getelementptr inbounds i32, ptr [[P:%.*]], i64 [[SELECT_V]]
64 ; CHECK-NEXT: ret ptr [[SELECT]]
69 %select = select i1 %cmp, ptr %gep1, ptr %gep2
70 ret ptr %select
77 ; CHECK-NEXT: [[SELECT_IDX:%.*]] = select i1 [[CMP]], i64 [[X]], i64 0
78 ; CHECK-NEXT: [[SELECT:%.*]] = getelementptr inbounds i32, ptr [[P:%.*]], i64 [[SELECT_IDX]]
79 ; CHECK-NEXT: ret ptr [[SELECT]]
83 %select = select i1 %cmp, ptr %gep, ptr %p
84 ret ptr %select
90 ; CHECK-NEXT: [[SELECT_IDX:%.*]] = select i1 [[CMP]], i64 [[X]], i64 0
91 ; CHECK-NEXT: [[SELECT:%.*]] = getelementptr nusw i32, ptr [[P:%.*]], i64 [[SELECT_IDX]]
92 ; CHECK-NEXT: ret ptr [[SELECT]]
96 %select = select i1 %cmp, ptr %gep, ptr %p
97 ret ptr %select
103 ; CHECK-NEXT: [[SELECT_IDX:%.*]] = select i1 [[CMP]], i64 [[X]], i64 0
104 ; CHECK-NEXT: [[SELECT:%.*]] = getelementptr nuw i32, ptr [[P:%.*]], i64 [[SELECT_IDX]]
105 ; CHECK-NEXT: ret ptr [[SELECT]]
109 %select = select i1 %cmp, ptr %gep, ptr %p
110 ret ptr %select
117 ; CHECK-NEXT: [[SELECT_IDX:%.*]] = select i1 [[CMP]], i64 0, i64 [[X]]
118 ; CHECK-NEXT: [[SELECT:%.*]] = getelementptr inbounds i32, ptr [[P:%.*]], i64 [[SELECT_IDX]]
119 ; CHECK-NEXT: ret ptr [[SELECT]]
123 %select = select i1 %cmp, ptr %p, ptr %gep
124 ret ptr %select
132 ; CHECK-NEXT: [[SEL_IDX:%.*]] = select i1 [[ICMP]], i64 0, i64 24
139 %sel = select i1 %icmp, ptr %gep1, ptr %gep2
148 ; CHECK-NEXT: [[SEL_IDX:%.*]] = select i1 [[ICMP]], i64 24, i64 0
155 %sel = select i1 %icmp, ptr %gep2, ptr %gep1
167 ; CHECK-NEXT: [[SELECT:%.*]] = select i1 [[CMP]], ptr [[GEP1]], ptr [[GEP2]]
168 ; CHECK-NEXT: ret ptr [[SELECT]]
173 %select = select i1 %cmp, ptr %gep1, ptr %gep2
174 ret ptr %select
182 ; CHECK-NEXT: [[SELECT:%.*]] = select i1 [[CMP]], ptr [[GEP1]], ptr [[GEP2]]
183 ; CHECK-NEXT: ret ptr [[SELECT]]
188 %select = select i1 %cmp, ptr %gep1, ptr %gep2
189 ret ptr %select
197 ; CHECK-NEXT: [[SELECT:%.*]] = select i1 [[CMP]], ptr [[GEP1]], ptr [[GEP2]]
198 ; CHECK-NEXT: ret ptr [[SELECT]]
203 %select = select i1 %cmp, ptr %gep1, ptr %gep2
204 ret ptr %select
212 ; CHECK-NEXT: [[SELECT:%.*]] = select i1 [[CMP]], ptr [[GEP1]], ptr [[GEP2]]
213 ; CHECK-NEXT: ret ptr [[SELECT]]
218 %select = select i1 %cmp, ptr %gep1, ptr %gep2
219 ret ptr %select
222 ; Shouldn't be optimised as it would mean introducing an extra select
229 ; CHECK-NEXT: [[SELECT:%.*]] = select i1 [[CMP]], ptr [[GEP1]], ptr [[GEP2]]
230 ; CHECK-NEXT: ret ptr [[SELECT]]
235 %select = select i1 %cmp, ptr %gep1, ptr %gep2
236 ret ptr %select
239 ; We cannot create a select with a vector condition but scalar operands.
245 ; CHECK-NEXT: [[SELECT:%.*]] = select <2 x i1> [[CC:%.*]], <2 x ptr> [[GEP1]], <2 x ptr> [[GEP2]]
246 ; CHECK-NEXT: ret <2 x ptr> [[SELECT]]
250 %select = select <2 x i1> %cc, <2 x ptr> %gep1, <2 x ptr> %gep2
251 ret <2 x ptr> %select
259 ; CHECK-NEXT: [[SEL_IDX:%.*]] = select i1 [[ICMP]], i64 [[Y]], i64 0
267 %sel = select i1 %icmp, ptr %gep2, ptr %gep1
273 ; We cannot create a select-with-idx with a vector condition but scalar idx.
278 ; CHECK-NEXT: [[SELECT:%.*]] = select <2 x i1> [[CC:%.*]], <2 x ptr> [[P1]], <2 x ptr> [[GEP]]
279 ; CHECK-NEXT: ret <2 x ptr> [[SELECT]]
282 %select = select <2 x i1> %cc, <2 x ptr> %p1, <2 x ptr> %gep
283 ret <2 x ptr> %select