Lines Matching full:addr

8 int test_ldrex(char *addr, long long *addr64, float *addrfloat) {  in test_ldrex()  argument
12 sum += __builtin_arm_ldrex(addr); in test_ldrex()
13 // CHECK: [[INTRES:%.*]] = call i32 @llvm.arm.ldrex.p0(ptr elementtype(i8) %addr) in test_ldrex()
16 // CHECK-ARM64: [[INTRES:%.*]] = call i64 @llvm.aarch64.ldxr.p0(ptr elementtype(i8) %addr) in test_ldrex()
19 sum += __builtin_arm_ldrex((short *)addr); in test_ldrex()
20 // CHECK: [[INTRES:%.*]] = call i32 @llvm.arm.ldrex.p0(ptr elementtype(i16) %addr) in test_ldrex()
23 // CHECK-ARM64: [[INTRES:%.*]] = call i64 @llvm.aarch64.ldxr.p0(ptr elementtype(i16) %addr) in test_ldrex()
26 sum += __builtin_arm_ldrex((int *)addr); in test_ldrex()
27 // CHECK: call i32 @llvm.arm.ldrex.p0(ptr elementtype(i32) %addr) in test_ldrex()
29 // CHECK-ARM64: [[INTRES:%.*]] = call i64 @llvm.aarch64.ldxr.p0(ptr elementtype(i32) %addr) in test_ldrex()
32 sum += __builtin_arm_ldrex((long long *)addr); in test_ldrex()
33 // CHECK: call { i32, i32 } @llvm.arm.ldrexd(ptr %addr) in test_ldrex()
35 // CHECK-ARM64: call i64 @llvm.aarch64.ldxr.p0(ptr elementtype(i64) %addr) in test_ldrex()
49 sum += __builtin_arm_ldrex((double *)addr); in test_ldrex()
50 // CHECK: [[STRUCTRES:%.*]] = call { i32, i32 } @llvm.arm.ldrexd(ptr %addr) in test_ldrex()
58 // CHECK-ARM64: [[INTRES:%.*]] = call i64 @llvm.aarch64.ldxr.p0(ptr elementtype(i64) %addr) in test_ldrex()
61 sum += *__builtin_arm_ldrex((int **)addr); in test_ldrex()
62 // CHECK: [[INTRES:%.*]] = call i32 @llvm.arm.ldrex.p0(ptr elementtype(i32) %addr) in test_ldrex()
65 // CHECK-ARM64: [[INTRES:%.*]] = call i64 @llvm.aarch64.ldxr.p0(ptr elementtype(i64) %addr) in test_ldrex()
68 sum += __builtin_arm_ldrex((struct Simple **)addr)->a; in test_ldrex()
69 // CHECK: [[INTRES:%.*]] = call i32 @llvm.arm.ldrex.p0(ptr elementtype(i32) %addr) in test_ldrex()
72 // CHECK-ARM64: [[INTRES:%.*]] = call i64 @llvm.aarch64.ldxr.p0(ptr elementtype(i64) %addr) in test_ldrex()
77 int test_ldaex(char *addr, long long *addr64, float *addrfloat) { in test_ldaex() argument
81 sum += __builtin_arm_ldaex(addr); in test_ldaex()
82 // CHECK: [[INTRES:%.*]] = call i32 @llvm.arm.ldaex.p0(ptr elementtype(i8) %addr) in test_ldaex()
85 // CHECK-ARM64: [[INTRES:%.*]] = call i64 @llvm.aarch64.ldaxr.p0(ptr elementtype(i8) %addr) in test_ldaex()
88 sum += __builtin_arm_ldaex((short *)addr); in test_ldaex()
89 // CHECK: [[INTRES:%.*]] = call i32 @llvm.arm.ldaex.p0(ptr elementtype(i16) %addr) in test_ldaex()
92 // CHECK-ARM64: [[INTRES:%.*]] = call i64 @llvm.aarch64.ldaxr.p0(ptr elementtype(i16) %addr) in test_ldaex()
95 sum += __builtin_arm_ldaex((int *)addr); in test_ldaex()
96 // CHECK: call i32 @llvm.arm.ldaex.p0(ptr elementtype(i32) %addr) in test_ldaex()
98 // CHECK-ARM64: [[INTRES:%.*]] = call i64 @llvm.aarch64.ldaxr.p0(ptr elementtype(i32) %addr) in test_ldaex()
101 sum += __builtin_arm_ldaex((long long *)addr); in test_ldaex()
102 // CHECK: call { i32, i32 } @llvm.arm.ldaexd(ptr %addr) in test_ldaex()
104 // CHECK-ARM64: call i64 @llvm.aarch64.ldaxr.p0(ptr elementtype(i64) %addr) in test_ldaex()
118 sum += __builtin_arm_ldaex((double *)addr); in test_ldaex()
119 // CHECK: [[STRUCTRES:%.*]] = call { i32, i32 } @llvm.arm.ldaexd(ptr %addr) in test_ldaex()
127 // CHECK-ARM64: [[INTRES:%.*]] = call i64 @llvm.aarch64.ldaxr.p0(ptr elementtype(i64) %addr) in test_ldaex()
130 sum += *__builtin_arm_ldaex((int **)addr); in test_ldaex()
131 // CHECK: [[INTRES:%.*]] = call i32 @llvm.arm.ldaex.p0(ptr elementtype(i32) %addr) in test_ldaex()
134 // CHECK-ARM64: [[INTRES:%.*]] = call i64 @llvm.aarch64.ldaxr.p0(ptr elementtype(i64) %addr) in test_ldaex()
137 sum += __builtin_arm_ldaex((struct Simple **)addr)->a; in test_ldaex()
138 // CHECK: [[INTRES:%.*]] = call i32 @llvm.arm.ldaex.p0(ptr elementtype(i32) %addr) in test_ldaex()
141 // CHECK-ARM64: [[INTRES:%.*]] = call i64 @llvm.aarch64.ldaxr.p0(ptr elementtype(i64) %addr) in test_ldaex()
146 int test_strex(char *addr) { in test_strex() argument
151 res |= __builtin_arm_strex(4, addr); in test_strex()
152 // CHECK: call i32 @llvm.arm.strex.p0(i32 4, ptr elementtype(i8) %addr) in test_strex()
154 // CHECK-ARM64: call i32 @llvm.aarch64.stxr.p0(i64 4, ptr elementtype(i8) %addr) in test_strex()
156 res |= __builtin_arm_strex(42, (short *)addr); in test_strex()
157 // CHECK: call i32 @llvm.arm.strex.p0(i32 42, ptr elementtype(i16) %addr) in test_strex()
159 // CHECK-ARM64: call i32 @llvm.aarch64.stxr.p0(i64 42, ptr elementtype(i16) %addr) in test_strex()
161 res |= __builtin_arm_strex(42, (int *)addr); in test_strex()
162 // CHECK: call i32 @llvm.arm.strex.p0(i32 42, ptr elementtype(i32) %addr) in test_strex()
164 // CHECK-ARM64: call i32 @llvm.aarch64.stxr.p0(i64 42, ptr elementtype(i32) %addr) in test_strex()
166 res |= __builtin_arm_strex(42, (long long *)addr); in test_strex()
171 // CHECK: call i32 @llvm.arm.strexd(i32 [[LO]], i32 [[HI]], ptr %addr) in test_strex()
173 // CHECK-ARM64: call i32 @llvm.aarch64.stxr.p0(i64 42, ptr elementtype(i64) %addr) in test_strex()
175 res |= __builtin_arm_strex(2.71828f, (float *)addr); in test_strex()
176 // CHECK: call i32 @llvm.arm.strex.p0(i32 1076754509, ptr elementtype(i32) %addr) in test_strex()
178 // CHECK-ARM64: call i32 @llvm.aarch64.stxr.p0(i64 1076754509, ptr elementtype(i32) %addr) in test_strex()
180 res |= __builtin_arm_strex(3.14159, (double *)addr); in test_strex()
185 // CHECK: call i32 @llvm.arm.strexd(i32 [[LO]], i32 [[HI]], ptr %addr) in test_strex()
187 // CHECK-ARM64: call i32 @llvm.aarch64.stxr.p0(i64 4614256650576692846, ptr elementtype(i64) %addr) in test_strex()
189 res |= __builtin_arm_strex(&var, (struct Simple **)addr); in test_strex()
191 // CHECK: call i32 @llvm.arm.strex.p0(i32 [[INTVAL]], ptr elementtype(i32) %addr) in test_strex()
194 // CHECK-ARM64: call i32 @llvm.aarch64.stxr.p0(i64 [[INTVAL]], ptr elementtype(i64) %addr) in test_strex()
199 int test_stlex(char *addr) { in test_stlex() argument
204 res |= __builtin_arm_stlex(4, addr); in test_stlex()
205 // CHECK: call i32 @llvm.arm.stlex.p0(i32 4, ptr elementtype(i8) %addr) in test_stlex()
207 // CHECK-ARM64: call i32 @llvm.aarch64.stlxr.p0(i64 4, ptr elementtype(i8) %addr) in test_stlex()
209 res |= __builtin_arm_stlex(42, (short *)addr); in test_stlex()
210 // CHECK: call i32 @llvm.arm.stlex.p0(i32 42, ptr elementtype(i16) %addr) in test_stlex()
212 // CHECK-ARM64: call i32 @llvm.aarch64.stlxr.p0(i64 42, ptr elementtype(i16) %addr) in test_stlex()
214 res |= __builtin_arm_stlex(42, (int *)addr); in test_stlex()
215 // CHECK: call i32 @llvm.arm.stlex.p0(i32 42, ptr elementtype(i32) %addr) in test_stlex()
217 // CHECK-ARM64: call i32 @llvm.aarch64.stlxr.p0(i64 42, ptr elementtype(i32) %addr) in test_stlex()
219 res |= __builtin_arm_stlex(42, (long long *)addr); in test_stlex()
224 // CHECK: call i32 @llvm.arm.stlexd(i32 [[LO]], i32 [[HI]], ptr %addr) in test_stlex()
226 // CHECK-ARM64: call i32 @llvm.aarch64.stlxr.p0(i64 42, ptr elementtype(i64) %addr) in test_stlex()
228 res |= __builtin_arm_stlex(2.71828f, (float *)addr); in test_stlex()
229 // CHECK: call i32 @llvm.arm.stlex.p0(i32 1076754509, ptr elementtype(i32) %addr) in test_stlex()
231 // CHECK-ARM64: call i32 @llvm.aarch64.stlxr.p0(i64 1076754509, ptr elementtype(i32) %addr) in test_stlex()
233 res |= __builtin_arm_stlex(3.14159, (double *)addr); in test_stlex()
238 // CHECK: call i32 @llvm.arm.stlexd(i32 [[LO]], i32 [[HI]], ptr %addr) in test_stlex()
240 // CHECK-ARM64: call i32 @llvm.aarch64.stlxr.p0(i64 4614256650576692846, ptr elementtype(i64) %addr) in test_stlex()
242 res |= __builtin_arm_stlex(&var, (struct Simple **)addr); in test_stlex()
244 // CHECK: call i32 @llvm.arm.stlex.p0(i32 [[INTVAL]], ptr elementtype(i32) %addr) in test_stlex()
247 // CHECK-ARM64: call i32 @llvm.aarch64.stlxr.p0(i64 [[INTVAL]], ptr elementtype(i64) %addr) in test_stlex()
264 __int128 test_ldrex_128(__int128 *addr) { in test_ldrex_128() argument
267 return __builtin_arm_ldrex(addr); in test_ldrex_128()
268 // CHECK-ARM64: [[STRUCTRES:%.*]] = call { i64, i64 } @llvm.aarch64.ldxp(ptr %addr) in test_ldrex_128()
278 int test_strex_128(__int128 *addr, __int128 val) { in test_strex_128() argument
281 return __builtin_arm_strex(val, addr); in test_strex_128()
286 // CHECK-ARM64: call i32 @llvm.aarch64.stxp(i64 [[LO]], i64 [[HI]], ptr %addr) in test_strex_128()
289 __int128 test_ldaex_128(__int128 *addr) { in test_ldaex_128() argument
292 return __builtin_arm_ldaex(addr); in test_ldaex_128()
293 // CHECK-ARM64: [[STRUCTRES:%.*]] = call { i64, i64 } @llvm.aarch64.ldaxp(ptr %addr) in test_ldaex_128()
303 int test_stlex_128(__int128 *addr, __int128 val) { in test_stlex_128() argument
306 return __builtin_arm_stlex(val, addr); in test_stlex_128()
311 // CHECK-ARM64: [[RES:%.*]] = call i32 @llvm.aarch64.stlxp(i64 [[LO]], i64 [[HI]], ptr %addr) in test_stlex_128()