Lines Matching defs:PS
274 typedef struct { short x, y, z; } PS;
276 void testPromotedStruct(_Atomic(PS) *fp) {
279 // CHECK-NEXT: [[F:%.*]] = alloca [[PS:%.*]], align 2
283 // CHECK-NEXT: [[TMP2:%.*]] = alloca %struct.PS, align 2
291 // CHECK-NEXT: [[T1:%.*]] = getelementptr inbounds [[PS]]* [[T0]], i32 0, i32 0
293 // CHECK-NEXT: [[T1:%.*]] = getelementptr inbounds [[PS]]* [[T0]], i32 0, i32 1
295 // CHECK-NEXT: [[T1:%.*]] = getelementptr inbounds [[PS]]* [[T0]], i32 0, i32 2
297 __c11_atomic_init(fp, (PS){1,2,3});
302 // CHECK-NEXT: [[T1:%.*]] = getelementptr inbounds [[PS]]* [[T0]], i32 0, i32 0
304 // CHECK-NEXT: [[T1:%.*]] = getelementptr inbounds [[PS]]* [[T0]], i32 0, i32 1
306 // CHECK-NEXT: [[T1:%.*]] = getelementptr inbounds [[PS]]* [[T0]], i32 0, i32 2
308 _Atomic(PS) x = (PS){1,2,3};
315 // CHECK-NEXT: [[T1:%.*]] = bitcast [[PS]]* [[F]] to i8*
316 // CHECK-NEXT: [[T2:%.*]] = bitcast [[PS]]* [[T0]] to i8*
318 PS f = *fp;
321 // CHECK-NEXT: [[T1:%.*]] = bitcast { %struct.PS, [2 x i8] }* [[TMP1]] to i8*
324 // CHECK-NEXT: [[T2:%.*]] = bitcast [[PS]]* [[T1]] to i8*
325 // CHECK-NEXT: [[T3:%.*]] = bitcast [[PS]]* [[F]] to i8*
337 // CHECK-NEXT: [[T1:%.*]] = bitcast %struct.PS* [[TMP2]] to i8*
338 // CHECK-NEXT: [[T2:%.*]] = bitcast %struct.PS* [[T0]] to i8*
340 // CHECK-NEXT: [[T0:%.*]] = getelementptr inbounds %struct.PS* [[TMP2]], i32 0, i32 0
344 int a = ((PS)*fp).x;
353 void testPromotedStructOps(_Atomic(PS) *p) {
354 PS a = __c11_atomic_load(p, 5);
356 PS b = __c11_atomic_exchange(p, a, 5);