@@ -61,6 +61,26 @@ entry:
61
61
ret void
62
62
}
63
63
64
+ define void @write4to7_addrspace (i32 addrspace (1 )* nocapture %p ) {
65
+ ; CHECK-LABEL: @write4to7_addrspace(
66
+ ; CHECK-NEXT: entry:
67
+ ; CHECK-NEXT: [[ARRAYIDX0:%.*]] = getelementptr inbounds i32, i32 addrspace(1)* [[P:%.*]], i64 1
68
+ ; CHECK-NEXT: [[P3:%.*]] = bitcast i32 addrspace(1)* [[ARRAYIDX0]] to i8 addrspace(1)*
69
+ ; CHECK-NEXT: [[TMP0:%.*]] = getelementptr inbounds i8, i8 addrspace(1)* [[P3]], i64 4
70
+ ; CHECK-NEXT: call void @llvm.memset.p1i8.i64(i8 addrspace(1)* align 4 [[TMP0]], i8 0, i64 24, i1 false)
71
+ ; CHECK-NEXT: [[ARRAYIDX1:%.*]] = getelementptr inbounds i32, i32 addrspace(1)* [[P]], i64 1
72
+ ; CHECK-NEXT: store i32 1, i32 addrspace(1)* [[ARRAYIDX1]], align 4
73
+ ; CHECK-NEXT: ret void
74
+ ;
75
+ entry:
76
+ %arrayidx0 = getelementptr inbounds i32 , i32 addrspace (1 )* %p , i64 1
77
+ %p3 = bitcast i32 addrspace (1 )* %arrayidx0 to i8 addrspace (1 )*
78
+ call void @llvm.memset.p1i8.i64 (i8 addrspace (1 )* align 4 %p3 , i8 0 , i64 28 , i1 false )
79
+ %arrayidx1 = getelementptr inbounds i32 , i32 addrspace (1 )* %p , i64 1
80
+ store i32 1 , i32 addrspace (1 )* %arrayidx1 , align 4
81
+ ret void
82
+ }
83
+
64
84
define void @write4to7_atomic (i32* nocapture %p ) {
65
85
; CHECK-LABEL: @write4to7_atomic(
66
86
; CHECK-NEXT: entry:
@@ -433,6 +453,7 @@ entry:
433
453
declare void @llvm.memset.p0i8.i64 (i8* nocapture , i8 , i64 , i1 ) nounwind
434
454
declare void @llvm.memset.p0i32.i64 (i32* nocapture , i8 , i64 , i1 ) nounwind
435
455
declare void @llvm.memset.p0.i64 (ptr nocapture , i8 , i64 , i1 ) nounwind
456
+ declare void @llvm.memset.p1i8.i64 (i8 addrspace (1 )* nocapture , i8 , i64 , i1 ) nounwind
436
457
declare void @llvm.memset.element.unordered.atomic.p0i8.i64 (i8* nocapture , i8 , i64 , i32 ) nounwind
437
458
438
459
define void @ow_begin_align1 (i8* nocapture %p ) {
0 commit comments