Lines Matching defs:PS

129 typedef struct { short x, y, z; } PS;
131 void testPromotedStruct(_Atomic(PS) *fp) {
134 // CHECK-NEXT: [[F:%.*]] = alloca [[PS:%.*]], align 2
142 // CHECK-NEXT: [[T1:%.*]] = getelementptr inbounds nuw [[PS]], ptr [[T0]], i32 0, i32 0
144 // CHECK-NEXT: [[T1:%.*]] = getelementptr inbounds nuw [[PS]], ptr [[T0]], i32 0, i32 1
146 // CHECK-NEXT: [[T1:%.*]] = getelementptr inbounds nuw [[PS]], ptr [[T0]], i32 0, i32 2
148 __c11_atomic_init(fp, (PS){1,2,3});
152 // CHECK-NEXT: [[T1:%.*]] = getelementptr inbounds nuw [[PS]], ptr [[T0]], i32 0, i32 0
154 // CHECK-NEXT: [[T1:%.*]] = getelementptr inbounds nuw [[PS]], ptr [[T0]], i32 0, i32 1
156 // CHECK-NEXT: [[T1:%.*]] = getelementptr inbounds nuw [[PS]], ptr [[T0]], i32 0, i32 2
158 _Atomic(PS) x = (PS){1,2,3};
165 PS f = *fp;
178 PS test_promoted_load(_Atomic(PS) *addr) {
179 // CHECK-LABEL: @test_promoted_load(ptr dead_on_unwind noalias writable sret(%struct.PS) align 2 %agg.result, ptr noundef %addr)
181 // CHECK: [[ATOMIC_RES:%.*]] = alloca { %struct.PS, [2 x i8] }, align 8
191 void test_promoted_store(_Atomic(PS) *addr, PS *val) {
195 // CHECK: [[NONATOMIC_TMP:%.*]] = alloca %struct.PS, align 2
196 // CHECK: [[ATOMIC_VAL:%.*]] = alloca { %struct.PS, [2 x i8] }, align 8
209 PS test_promoted_exchange(_Atomic(PS) *addr, PS *val) {
210 // CHECK-LABEL: @test_promoted_exchange(ptr dead_on_unwind noalias writable sret(%struct.PS) align 2 %agg.result, ptr noundef %addr, ptr noundef %val)
213 // CHECK: [[NONATOMIC_TMP:%.*]] = alloca %struct.PS, align 2
214 // CHECK: [[ATOMIC_VAL:%.*]] = alloca { %struct.PS, [2 x i8] }, align 8
215 // CHECK: [[ATOMIC_RES:%.*]] = alloca { %struct.PS, [2 x i8] }, align 8
229 _Bool test_promoted_cmpxchg(_Atomic(PS) *addr, PS *desired, PS *new) {
234 // CHECK: [[NONATOMIC_TMP:%.*]] = alloca %struct.PS, align 2
235 // CHECK: [[ATOMIC_DESIRED:%.*]] = alloca { %struct.PS, [2 x i8] }, align 8
236 // CHECK: [[ATOMIC_NEW:%.*]] = alloca { %struct.PS, [2 x i8] }, align 8