Lines Matching full:addr

8 ; CHECK-NEXT: %res = load atomic i32, i32* %addr monotonic, align 4
10 define i32 @atomic_add_zero(i32* %addr) {
11 %res = atomicrmw add i32* %addr, i32 0 monotonic
16 ; CHECK-NEXT: %res = load atomic i32, i32* %addr monotonic, align 4
18 define i32 @atomic_or_zero(i32* %addr) {
19 %res = atomicrmw add i32* %addr, i32 0 monotonic
24 ; CHECK-NEXT: %res = load atomic i32, i32* %addr monotonic, align 4
26 define i32 @atomic_sub_zero(i32* %addr) {
27 %res = atomicrmw sub i32* %addr, i32 0 monotonic
32 ; CHECK-NEXT: %res = load atomic i32, i32* %addr monotonic, align 4
34 define i32 @atomic_and_allones(i32* %addr) {
35 %res = atomicrmw and i32* %addr, i32 -1 monotonic
39 ; CHECK-NEXT: %res = load atomic i32, i32* %addr monotonic, align 4
41 define i32 @atomic_umin_uint_max(i32* %addr) {
42 %res = atomicrmw umin i32* %addr, i32 -1 monotonic
47 ; CHECK-NEXT: %res = load atomic i32, i32* %addr monotonic, align 4
49 define i32 @atomic_umax_zero(i32* %addr) {
50 %res = atomicrmw umax i32* %addr, i32 0 monotonic
55 ; CHECK-NEXT: %res = load atomic i8, i8* %addr monotonic, align 1
57 define i8 @atomic_min_smax_char(i8* %addr) {
58 %res = atomicrmw min i8* %addr, i8 127 monotonic
63 ; CHECK-NEXT: %res = load atomic i8, i8* %addr monotonic, align 1
65 define i8 @atomic_max_smin_char(i8* %addr) {
66 %res = atomicrmw max i8* %addr, i8 -128 monotonic
71 ; CHECK-NEXT: %res = load atomic float, float* %addr monotonic, align 4
73 define float @atomic_fsub_zero(float* %addr) {
74 %res = atomicrmw fsub float* %addr, float 0.0 monotonic
79 ; CHECK-NEXT: %res = load atomic float, float* %addr monotonic, align 4
81 define float @atomic_fadd_zero(float* %addr) {
82 %res = atomicrmw fadd float* %addr, float -0.0 monotonic
87 ; CHECK-NEXT: %res = atomicrmw fadd float* %addr, float -0.000000e+00 release
89 define float @atomic_fsub_canon(float* %addr) {
90 %res = atomicrmw fsub float* %addr, float 0.0 release
94 ; CHECK-NEXT: %res = atomicrmw fadd float* %addr, float -0.000000e+00 release
96 define float @atomic_fadd_canon(float* %addr) {
97 %res = atomicrmw fadd float* %addr, float -0.0 release
103 ; CHECK-NEXT: %res = atomicrmw volatile sub i64* %addr, i64 0 acquire
105 define i64 @atomic_sub_zero_volatile(i64* %addr) {
106 %res = atomicrmw volatile sub i64* %addr, i64 0 acquire
113 ; CHECK-NEXT: %res = load atomic i16, i16* %addr syncscope("some_syncscope") acquire, align 2
115 define i16 @atomic_syncscope(i16* %addr) {
116 %res = atomicrmw or i16* %addr, i16 0 syncscope("some_syncscope") acquire
123 ; CHECK-NEXT: %res = atomicrmw or i16* %addr, i16 0 seq_cst
125 define i16 @atomic_seq_cst(i16* %addr) {
126 %res = atomicrmw add i16* %addr, i16 0 seq_cst
133 ; CHECK-NEXT: %res = atomicrmw add i16* %addr, i16 2 monotonic
135 define i16 @atomic_add_non_zero(i16* %addr) {
136 %res = atomicrmw add i16* %addr, i16 2 monotonic
141 ; CHECK-NEXT: %res = load atomic i16, i16* %addr monotonic, align 2
143 define i16 @atomic_xor_zero(i16* %addr) {
144 %res = atomicrmw xor i16* %addr, i16 0 monotonic
151 ; CHECK-NEXT: %res = atomicrmw or i16* %addr, i16 0 release
153 define i16 @atomic_release(i16* %addr) {
154 %res = atomicrmw sub i16* %addr, i16 0 release
161 ; CHECK-NEXT: %res = atomicrmw or i16* %addr, i16 0 acq_rel
163 define i16 @atomic_acq_rel(i16* %addr) {
164 %res = atomicrmw xor i16* %addr, i16 0 acq_rel
170 ; CHECK-NEXT: %res = atomicrmw xchg i32* %addr, i32 -1 monotonic
172 define i32 @sat_or_allones(i32* %addr) {
173 %res = atomicrmw or i32* %addr, i32 -1 monotonic
178 ; CHECK-NEXT: %res = atomicrmw xchg i32* %addr, i32 0 monotonic
180 define i32 @sat_and_zero(i32* %addr) {
181 %res = atomicrmw and i32* %addr, i32 0 monotonic
185 ; CHECK-NEXT: %res = atomicrmw xchg i32* %addr, i32 0 monotonic
187 define i32 @sat_umin_uint_min(i32* %addr) {
188 %res = atomicrmw umin i32* %addr, i32 0 monotonic
193 ; CHECK-NEXT: %res = atomicrmw xchg i32* %addr, i32 -1 monotonic
195 define i32 @sat_umax_uint_max(i32* %addr) {
196 %res = atomicrmw umax i32* %addr, i32 -1 monotonic
201 ; CHECK-NEXT: %res = atomicrmw xchg i8* %addr, i8 -128 monotonic
203 define i8 @sat_min_smin_char(i8* %addr) {
204 %res = atomicrmw min i8* %addr, i8 -128 monotonic
209 ; CHECK-NEXT: %res = atomicrmw xchg i8* %addr, i8 127 monotonic
211 define i8 @sat_max_smax_char(i8* %addr) {
212 %res = atomicrmw max i8* %addr, i8 127 monotonic
217 ; CHECK-NEXT: %res = atomicrmw xchg double* %addr, double 0x7FF00000FFFFFFFF release
219 define double @sat_fadd_nan(double* %addr) {
220 %res = atomicrmw fadd double* %addr, double 0x7FF00000FFFFFFFF release
225 ; CHECK-NEXT: %res = atomicrmw xchg double* %addr, double 0x7FF00000FFFFFFFF release
227 define double @sat_fsub_nan(double* %addr) {
228 %res = atomicrmw fsub double* %addr, double 0x7FF00000FFFFFFFF release
233 ; CHECK-NEXT: store atomic double 0x7FF00000FFFFFFFF, double* %addr monotonic, align 8
235 define void @sat_fsub_nan_unused(double* %addr) {
236 atomicrmw fsub double* %addr, double 0x7FF00000FFFFFFFF monotonic
241 ; CHECK-NEXT: store atomic i32 0, i32* %addr monotonic, align 4
243 define void @xchg_unused_monotonic(i32* %addr) {
244 atomicrmw xchg i32* %addr, i32 0 monotonic
249 ; CHECK-NEXT: store atomic i32 -1, i32* %addr release, align 4
251 define void @xchg_unused_release(i32* %addr) {
252 atomicrmw xchg i32* %addr, i32 -1 release
257 ; CHECK-NEXT: atomicrmw xchg i32* %addr, i32 0 seq_cst
259 define void @xchg_unused_seq_cst(i32* %addr) {
260 atomicrmw xchg i32* %addr, i32 0 seq_cst
265 ; CHECK-NEXT: atomicrmw volatile xchg i32* %addr, i32 0 monotonic
267 define void @xchg_unused_volatile(i32* %addr) {
268 atomicrmw volatile xchg i32* %addr, i32 0 monotonic
273 ; CHECK-NEXT: store atomic i32 -1, i32* %addr monotonic, align 4
275 define void @sat_or_allones_unused(i32* %addr) {
276 atomicrmw or i32* %addr, i32 -1 monotonic
282 ; CHECK-NEXT: atomicrmw or i32* %addr, i32 undef monotonic
284 define void @undef_operand_unused(i32* %addr) {
285 atomicrmw or i32* %addr, i32 undef monotonic
290 ; CHECK-NEXT: %res = atomicrmw or i32* %addr, i32 undef monotonic
292 define i32 @undef_operand_used(i32* %addr) {
293 %res = atomicrmw or i32* %addr, i32 undef monotonic