Skip to content

Commit cf47505

Browse files
committed
memcpy size must be >=8 to generate load atomic <1 x ptr>
1 parent 083346d commit cf47505

File tree

1 file changed

+3
-4
lines changed

1 file changed

+3
-4
lines changed

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

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,16 +37,15 @@ define i32 @atomic_vector_int() {
3737

3838
define ptr @atomic_vector_ptr() {
3939
; 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)
40+
; CHECK-NEXT: [[VAL_SROA_0:%.*]] = alloca <1 x ptr>, align 8
41+
; CHECK-NEXT: store <1 x ptr> undef, ptr [[VAL_SROA_0]], align 8
4342
; CHECK-NEXT: [[VAL_SROA_0_0_VAL_SROA_0_0_RET:%.*]] = load atomic volatile ptr, ptr [[VAL_SROA_0]] acquire, align 4
4443
; CHECK-NEXT: ret ptr [[VAL_SROA_0_0_VAL_SROA_0_0_RET]]
4544
;
4645
%src = alloca <1 x ptr>
4746
%val = alloca <1 x ptr>
4847
%direct = alloca ptr
49-
call void @llvm.memcpy.p0.p0.i64(ptr %val, ptr %src, i64 4, i1 false)
48+
call void @llvm.memcpy.p0.p0.i64(ptr %val, ptr %src, i64 8, i1 false)
5049
store ptr %val, ptr %direct
5150
%indirect = load ptr, ptr %direct
5251
%ret = load atomic volatile ptr, ptr %indirect acquire, align 4

0 commit comments

Comments
 (0)