Lines Matching defs:PS
145 typedef struct { short x, y, z; } PS;
147 void testPromotedStruct(_Atomic(PS) *fp) {
150 // CHECK-NEXT: [[F:%.*]] = alloca [[PS:%.*]], align 2
159 // CHECK-NEXT: [[T1:%.*]] = getelementptr inbounds [[PS]]* [[T0]], i32 0, i32 0
161 // CHECK-NEXT: [[T1:%.*]] = getelementptr inbounds [[PS]]* [[T0]], i32 0, i32 1
163 // CHECK-NEXT: [[T1:%.*]] = getelementptr inbounds [[PS]]* [[T0]], i32 0, i32 2
165 __c11_atomic_init(fp, (PS){1,2,3});
170 // CHECK-NEXT: [[T1:%.*]] = getelementptr inbounds [[PS]]* [[T0]], i32 0, i32 0
172 // CHECK-NEXT: [[T1:%.*]] = getelementptr inbounds [[PS]]* [[T0]], i32 0, i32 1
174 // CHECK-NEXT: [[T1:%.*]] = getelementptr inbounds [[PS]]* [[T0]], i32 0, i32 2
176 _Atomic(PS) x = (PS){1,2,3};
184 // CHECK-NEXT: [[T1:%.*]] = bitcast [[PS]]* [[F]] to i8*
185 // CHECK-NEXT: [[T2:%.*]] = bitcast [[PS]]* [[T0]] to i8*
187 PS f = *fp;
190 // CHECK-NEXT: [[T1:%.*]] = bitcast { %struct.PS, [2 x i8] }* [[TMP1]] to i8*
193 // CHECK-NEXT: [[T2:%.*]] = bitcast [[PS]]* [[T1]] to i8*
194 // CHECK-NEXT: [[T3:%.*]] = bitcast [[PS]]* [[F]] to i8*
205 void testPromotedStructOps(_Atomic(PS) *p) {
206 PS a = __c11_atomic_load(p, 5);
208 PS b = __c11_atomic_exchange(p, a, 5);