Lines Matching full:input
6 ; foo(input[0]);
7 ; foo(input[s]);
8 ; foo(input[s * 2]);
10 ; p0 = &input[0];
16 define void @slsr_gep(ptr %input, i64 %s) {
18 ; CHECK-SAME: ptr [[INPUT:%.*]], i64 [[S:%.*]]) {
19 ; CHECK-NEXT: call void @foo(ptr [[INPUT]])
20 ; CHECK-NEXT: [[P1:%.*]] = getelementptr inbounds i32, ptr [[INPUT]], i64 [[S]]
27 ; v0 = input[0];
28 call void @foo(ptr %input)
30 ; v1 = input[s];
31 %p1 = getelementptr inbounds i32, ptr %input, i64 %s
34 ; v2 = input[s * 2];
36 %p2 = getelementptr inbounds i32, ptr %input, i64 %s2
42 ; foo(input[0]);
43 ; foo(input[(long)s]);
44 ; foo(input[(long)(s * 2)]);
46 ; p0 = &input[0];
52 define void @slsr_gep_sext(ptr %input, i32 %s) {
54 ; CHECK-SAME: ptr [[INPUT:%.*]], i32 [[S:%.*]]) {
55 ; CHECK-NEXT: call void @foo(ptr [[INPUT]])
57 ; CHECK-NEXT: [[P1:%.*]] = getelementptr inbounds i32, ptr [[INPUT]], i64 [[T]]
64 ; v0 = input[0];
65 call void @foo(ptr %input)
67 ; v1 = input[s];
69 %p1 = getelementptr inbounds i32, ptr %input, i64 %t
72 ; v2 = input[s * 2];
75 %p2 = getelementptr inbounds i32, ptr %input, i64 %t2
81 ; int input[10][5];
82 ; foo(input[s][t]);
83 ; foo(input[s * 2][t]);
84 ; foo(input[s * 3][t]);
86 ; p0 = &input[s][t];
92 define void @slsr_gep_2d(ptr %input, i64 %s, i64 %t) {
94 ; CHECK-SAME: ptr [[INPUT:%.*]], i64 [[S:%.*]], i64 [[T:%.*]]) {
95 ; CHECK-NEXT: [[P0:%.*]] = getelementptr inbounds [10 x [5 x i32]], ptr [[INPUT]], i64 0, i64 [[…
104 ; v0 = input[s][t];
105 %p0 = getelementptr inbounds [10 x [5 x i32]], ptr %input, i64 0, i64 %s, i64 %t
108 ; v1 = input[s * 2][t];
110 %p1 = getelementptr inbounds [10 x [5 x i32]], ptr %input, i64 0, i64 %s2, i64 %t
113 ; v3 = input[s * 3][t];
115 %p2 = getelementptr inbounds [10 x [5 x i32]], ptr %input, i64 0, i64 %s3, i64 %t
124 ; = (char *)&input[s * 2][t].f1 - (char *)&input[s][t].f1
126 ; which may not be divisible by typeof(input[s][t].f1) = 8. Therefore, we
129 define void @slsr_gep_uglygep(ptr %input, i64 %s, i64 %t) {
131 ; CHECK-SAME: ptr [[INPUT:%.*]], i64 [[S:%.*]], i64 [[T:%.*]]) {
132 ; CHECK-NEXT: [[P0:%.*]] = getelementptr inbounds [10 x [5 x %struct.S]], ptr [[INPUT]], i64 0, …
141 ; v0 = input[s][t].f1;
142 %p0 = getelementptr inbounds [10 x [5 x %struct.S]], ptr %input, i64 0, i64 %s, i64 %t, i32 0
145 ; v1 = input[s * 2][t].f1;
147 %p1 = getelementptr inbounds [10 x [5 x %struct.S]], ptr %input, i64 0, i64 %s2, i64 %t, i32 0
150 ; v2 = input[s * 3][t].f1;
152 %p2 = getelementptr inbounds [10 x [5 x %struct.S]], ptr %input, i64 0, i64 %s3, i64 %t, i32 0
158 define void @slsr_out_of_bounds_gep(ptr %input, i32 %s) {
160 ; CHECK-SAME: ptr [[INPUT:%.*]], i32 [[S:%.*]]) {
161 ; CHECK-NEXT: call void @foo(ptr [[INPUT]])
163 ; CHECK-NEXT: [[P1:%.*]] = getelementptr i32, ptr [[INPUT]], i64 [[T]]
170 ; v0 = input[0];
171 call void @foo(ptr %input)
173 ; v1 = input[(long)s];
175 %p1 = getelementptr i32, ptr %input, i64 %t
178 ; v2 = input[(long)(s * 2)];
181 %p2 = getelementptr i32, ptr %input, i64 %t2
187 define void @slsr_gep_128bit_index(ptr %input, i128 %s) {
189 ; CHECK-SAME: ptr [[INPUT:%.*]], i128 [[S:%.*]]) {
190 ; CHECK-NEXT: call void @foo(ptr [[INPUT]])
192 ; CHECK-NEXT: [[P1:%.*]] = getelementptr inbounds i32, ptr [[INPUT]], i128 [[S125]]
195 ; CHECK-NEXT: [[P2:%.*]] = getelementptr inbounds i32, ptr [[INPUT]], i128 [[S126]]
199 ; p0 = &input[0]
200 call void @foo(ptr %input)
202 ; p1 = &input[s << 125]
204 %p1 = getelementptr inbounds i32, ptr %input, i128 %s125
207 ; p2 = &input[s << 126]
209 %p2 = getelementptr inbounds i32, ptr %input, i128 %s126
215 define void @slsr_gep_32bit_pointer(ptr addrspace(1) %input, i64 %s) {
217 ; CHECK-SAME: ptr addrspace(1) [[INPUT:%.*]], i64 [[S:%.*]]) {
218 ; CHECK-NEXT: [[P1:%.*]] = getelementptr inbounds i32, ptr addrspace(1) [[INPUT]], i64 [[S]]
221 ; CHECK-NEXT: [[P2:%.*]] = getelementptr inbounds i32, ptr addrspace(1) [[INPUT]], i64 [[S2]]
225 ; p1 = &input[s]
226 %p1 = getelementptr inbounds i32, ptr addrspace(1) %input, i64 %s
229 ; p2 = &input[s * 2]
231 %p2 = getelementptr inbounds i32, ptr addrspace(1) %input, i64 %s2
238 define void @slsr_gep_fat_pointer(ptr addrspace(2) %input, i32 %s) {
239 ; p1 = &input[s]
241 ; CHECK-SAME: ptr addrspace(2) [[INPUT:%.*]], i32 [[S:%.*]]) {
242 ; CHECK-NEXT: [[P1:%.*]] = getelementptr inbounds i32, ptr addrspace(2) [[INPUT]], i32 [[S]]
249 %p1 = getelementptr inbounds i32, ptr addrspace(2) %input, i32 %s
252 ; p2 = &input[s * 2]
254 %p2 = getelementptr inbounds i32, ptr addrspace(2) %input, i32 %s2