Skip to content

Commit 083346d

Browse files
committed
Add i32,ptr tests and rename variables
1 parent 0c61505 commit 083346d

File tree

1 file changed

+43
-8
lines changed

1 file changed

+43
-8
lines changed

llvm/test/Transforms/SROA/atomic-vector.ll

Lines changed: 43 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,47 @@ define float @atomic_vector() {
88
; CHECK-NEXT: [[TMP2:%.*]] = load atomic volatile float, ptr [[TMP1]] acquire, align 4
99
; CHECK-NEXT: ret float [[TMP2]]
1010
;
11-
%1 = alloca <1 x float>
12-
%2 = alloca <1 x float>
13-
%3 = alloca ptr
14-
call void @llvm.memcpy.p0.p0.i64(ptr %2, ptr %1, i64 4, i1 false)
15-
store ptr %2, ptr %3
16-
%4 = load ptr, ptr %3
17-
%5 = load atomic volatile float, ptr %4 acquire, align 4
18-
ret float %5
11+
%src = alloca <1 x float>
12+
%val = alloca <1 x float>
13+
%direct = alloca ptr
14+
call void @llvm.memcpy.p0.p0.i64(ptr %val, ptr %src, i64 4, i1 false)
15+
store ptr %val, ptr %direct
16+
%indirect = load ptr, ptr %direct
17+
%ret = load atomic volatile float, ptr %indirect acquire, align 4
18+
ret float %ret
19+
}
20+
21+
define i32 @atomic_vector_int() {
22+
; CHECK-LABEL: define i32 @atomic_vector_int() {
23+
; CHECK-NEXT: [[VAL:%.*]] = alloca <1 x i32>, align 4
24+
; CHECK-NEXT: store <1 x i32> undef, ptr [[VAL]], align 4
25+
; CHECK-NEXT: [[RET:%.*]] = load atomic volatile i32, ptr [[VAL]] acquire, align 4
26+
; CHECK-NEXT: ret i32 [[RET]]
27+
;
28+
%src = alloca <1 x i32>
29+
%val = alloca <1 x i32>
30+
%direct = alloca ptr
31+
call void @llvm.memcpy.p0.p0.i64(ptr %val, ptr %src, i64 4, i1 false)
32+
store ptr %val, ptr %direct
33+
%indirect = load ptr, ptr %direct
34+
%ret = load atomic volatile i32, ptr %indirect acquire, align 4
35+
ret i32 %ret
36+
}
37+
38+
define ptr @atomic_vector_ptr() {
39+
; CHECK-LABEL: define ptr @atomic_vector_ptr() {
40+
; CHECK-NEXT: [[SRC_SROA_0:%.*]] = alloca [4 x i8], align 8
41+
; CHECK-NEXT: [[VAL_SROA_0:%.*]] = alloca ptr, align 8
42+
; CHECK-NEXT: call void @llvm.memcpy.p0.p0.i64(ptr align 8 [[VAL_SROA_0]], ptr align 8 [[SRC_SROA_0]], i64 4, i1 false)
43+
; CHECK-NEXT: [[VAL_SROA_0_0_VAL_SROA_0_0_RET:%.*]] = load atomic volatile ptr, ptr [[VAL_SROA_0]] acquire, align 4
44+
; CHECK-NEXT: ret ptr [[VAL_SROA_0_0_VAL_SROA_0_0_RET]]
45+
;
46+
%src = alloca <1 x ptr>
47+
%val = alloca <1 x ptr>
48+
%direct = alloca ptr
49+
call void @llvm.memcpy.p0.p0.i64(ptr %val, ptr %src, i64 4, i1 false)
50+
store ptr %val, ptr %direct
51+
%indirect = load ptr, ptr %direct
52+
%ret = load atomic volatile ptr, ptr %indirect acquire, align 4
53+
ret ptr %ret
1954
}

0 commit comments

Comments
 (0)