@@ -137,3 +137,111 @@ int64_t test_ldat_sswap(int64_t *ptr, int64_t val) {
137137 // CHECK: call i64 @llvm.ppc.amo.ldat(ptr %{{.*}}, i64 %{{.*}}, i32 8)
138138 return amo_ldat_sswap (ptr , val );
139139}
140+
141+ void test_stwat_add (uint32_t * ptr , uint32_t val ) {
142+ // CHECK-LABEL: @test_stwat_add
143+ // CHECK: call void @llvm.ppc.amo.stwat(ptr %{{.*}}, i32 %{{.*}}, i32 0)
144+ return amo_stwat_add (ptr , val );
145+ }
146+
147+ void test_stwat_xor (uint32_t * ptr , uint32_t val ) {
148+ // CHECK-LABEL: @test_stwat_xor
149+ // CHECK: call void @llvm.ppc.amo.stwat(ptr %{{.*}}, i32 %{{.*}}, i32 1)
150+ return amo_stwat_xor (ptr , val );
151+ }
152+
153+ void test_stwat_ior (uint32_t * ptr , uint32_t val ) {
154+ // CHECK-LABEL: @test_stwat_ior
155+ // CHECK: call void @llvm.ppc.amo.stwat(ptr %{{.*}}, i32 %{{.*}}, i32 2)
156+ return amo_stwat_ior (ptr , val );
157+ }
158+
159+ void test_stwat_and (uint32_t * ptr , uint32_t val ) {
160+ // CHECK-LABEL: @test_stwat_and
161+ // CHECK: call void @llvm.ppc.amo.stwat(ptr %{{.*}}, i32 %{{.*}}, i32 3)
162+ return amo_stwat_and (ptr , val );
163+ }
164+
165+ void test_stwat_umax (uint32_t * ptr , uint32_t val ) {
166+ // CHECK-LABEL: @test_stwat_umax
167+ // CHECK: call void @llvm.ppc.amo.stwat(ptr %{{.*}}, i32 %{{.*}}, i32 4)
168+ return amo_stwat_umax (ptr , val );
169+ }
170+
171+ void test_stwat_umin (uint32_t * ptr , uint32_t val ) {
172+ // CHECK-LABEL: @test_stwat_umin
173+ // CHECK: call void @llvm.ppc.amo.stwat(ptr %{{.*}}, i32 %{{.*}}, i32 6)
174+ return amo_stwat_umin (ptr , val );
175+ }
176+
177+ void test_stwat_sadd (int32_t * ptr , int32_t val ) {
178+ // CHECK-LABEL: @test_stwat_sadd
179+ // CHECK: call void @llvm.ppc.amo.stwat(ptr %{{.*}}, i32 %{{.*}}, i32 0)
180+ return amo_stwat_sadd (ptr , val );
181+ }
182+
183+ void test_stwat_smax (int32_t * ptr , int32_t val ) {
184+ // CHECK-LABEL: @test_stwat_smax
185+ // CHECK: call void @llvm.ppc.amo.stwat(ptr %{{.*}}, i32 %{{.*}}, i32 5)
186+ return amo_stwat_smax (ptr , val );
187+ }
188+
189+ void test_stwat_smin (int32_t * ptr , int32_t val ) {
190+ // CHECK-LABEL: @test_stwat_smin
191+ // CHECK: call void @llvm.ppc.amo.stwat(ptr %{{.*}}, i32 %{{.*}}, i32 7)
192+ return amo_stwat_smin (ptr , val );
193+ }
194+
195+ void test_stdat_add (uint64_t * ptr , uint64_t val ) {
196+ // CHECK-LABEL: @test_stdat_add
197+ // CHECK: call void @llvm.ppc.amo.stdat(ptr %{{.*}}, i64 %{{.*}}, i32 0)
198+ return amo_stdat_add (ptr , val );
199+ }
200+
201+ void test_stdat_xor (uint64_t * ptr , uint64_t val ) {
202+ // CHECK-LABEL: @test_stdat_xor
203+ // CHECK: call void @llvm.ppc.amo.stdat(ptr %{{.*}}, i64 %{{.*}}, i32 1)
204+ return amo_stdat_xor (ptr , val );
205+ }
206+
207+ void test_stdat_ior (uint64_t * ptr , uint64_t val ) {
208+ // CHECK-LABEL: @test_stdat_ior
209+ // CHECK: call void @llvm.ppc.amo.stdat(ptr %{{.*}}, i64 %{{.*}}, i32 2)
210+ return amo_stdat_ior (ptr , val );
211+ }
212+
213+ void test_stdat_and (uint64_t * ptr , uint64_t val ) {
214+ // CHECK-LABEL: @test_stdat_and
215+ // CHECK: call void @llvm.ppc.amo.stdat(ptr %{{.*}}, i64 %{{.*}}, i32 3)
216+ return amo_stdat_and (ptr , val );
217+ }
218+
219+ void test_stdat_umax (uint64_t * ptr , uint64_t val ) {
220+ // CHECK-LABEL: @test_stdat_umax
221+ // CHECK: call void @llvm.ppc.amo.stdat(ptr %{{.*}}, i64 %{{.*}}, i32 4)
222+ return amo_stdat_umax (ptr , val );
223+ }
224+
225+ void test_stdat_umin (uint64_t * ptr , uint64_t val ) {
226+ // CHECK-LABEL: @test_stdat_umin
227+ // CHECK: call void @llvm.ppc.amo.stdat(ptr %{{.*}}, i64 %{{.*}}, i32 6)
228+ return amo_stdat_umin (ptr , val );
229+ }
230+
231+ void test_stdat_sadd (int64_t * ptr , int64_t val ) {
232+ // CHECK-LABEL: @test_stdat_sadd
233+ // CHECK: call void @llvm.ppc.amo.stdat(ptr %{{.*}}, i64 %{{.*}}, i32 0)
234+ return amo_stdat_sadd (ptr , val );
235+ }
236+
237+ void test_stdat_smax (int64_t * ptr , int64_t val ) {
238+ // CHECK-LABEL: @test_stdat_smax
239+ // CHECK: call void @llvm.ppc.amo.stdat(ptr %{{.*}}, i64 %{{.*}}, i32 5)
240+ return amo_stdat_smax (ptr , val );
241+ }
242+
243+ void test_stdat_smin (int64_t * ptr , int64_t val ) {
244+ // CHECK-LABEL: @test_stdat_smin
245+ // CHECK: call void @llvm.ppc.amo.stdat(ptr %{{.*}}, i64 %{{.*}}, i32 7)
246+ return amo_stdat_smin (ptr , val );
247+ }
0 commit comments