@@ -104,6 +104,31 @@ define void @memset_i32(ptr %dest, i8 %val, i32 %len) {
104104 ret void
105105}
106106
107+ ; CHECK-LABEL: memcpy_0:
108+ ; CHECK-NEXT: .functype memcpy_0 (i32, i32) -> ()
109+ ; CHECK-NEXT: return
110+ define void @memcpy_0 (ptr %dest , ptr %src ) {
111+ call void @llvm.memcpy.p0.p0.i32 (ptr %dest , ptr %src , i32 0 , i1 0 )
112+ ret void
113+ }
114+
115+ ; CHECK-LABEL: memmove_0:
116+ ; CHECK-NEXT: .functype memmove_0 (i32, i32) -> ()
117+ ; CHECK-NEXT: return
118+ define void @memmove_0 (ptr %dest , ptr %src ) {
119+ call void @llvm.memmove.p0.p0.i32 (ptr %dest , ptr %src , i32 0 , i1 0 )
120+ ret void
121+ }
122+
123+ ; CHECK-LABEL: memset_0:
124+ ; NO-BULK-MEM-NOT: memory.fill
125+ ; BULK-MEM-NEXT: .functype memset_0 (i32, i32) -> ()
126+ ; BULK-MEM-NEXT: return
127+ define void @memset_0 (ptr %dest , i8 %val ) {
128+ call void @llvm.memset.p0.i32 (ptr %dest , i8 %val , i32 0 , i1 0 )
129+ ret void
130+ }
131+
107132; CHECK-LABEL: memcpy_1:
108133; CHECK-NEXT: .functype memcpy_1 (i32, i32) -> ()
109134; CHECK-NEXT: i32.load8_u $push[[L0:[0-9]+]]=, 0($1)
@@ -137,14 +162,8 @@ define void @memset_1(ptr %dest, i8 %val) {
137162; CHECK-LABEL: memcpy_1024:
138163; NO-BULK-MEM-NOT: memory.copy
139164; BULK-MEM-NEXT: .functype memcpy_1024 (i32, i32) -> ()
140- ; BULK-MEM-NEXT: block
141165; BULK-MEM-NEXT: i32.const $push[[L0:[0-9]+]]=, 1024
142- ; BULK-MEM-NEXT: i32.eqz $push[[L1:[0-9]+]]=, $pop[[L0]]
143- ; BULK-MEM-NEXT: br_if 0, $pop[[L1]]
144- ; BULK-MEM-NEXT: i32.const $push[[L2:[0-9]+]]=, 1024
145- ; BULK-MEM-NEXT: memory.copy 0, 0, $0, $1, $pop[[L2]]
146- ; BULK-MEM-NEXT: .LBB{{.*}}:
147- ; BULK-MEM-NEXT: end_block
166+ ; BULK-MEM-NEXT: memory.copy 0, 0, $0, $1, $pop[[L0]]
148167; BULK-MEM-NEXT: return
149168define void @memcpy_1024 (ptr %dest , ptr %src ) {
150169 call void @llvm.memcpy.p0.p0.i32 (ptr %dest , ptr %src , i32 1024 , i1 0 )
@@ -154,14 +173,8 @@ define void @memcpy_1024(ptr %dest, ptr %src) {
154173; CHECK-LABEL: memmove_1024:
155174; NO-BULK-MEM-NOT: memory.copy
156175; BULK-MEM-NEXT: .functype memmove_1024 (i32, i32) -> ()
157- ; BULK-MEM-NEXT: block
158176; BULK-MEM-NEXT: i32.const $push[[L0:[0-9]+]]=, 1024
159- ; BULK-MEM-NEXT: i32.eqz $push[[L1:[0-9]+]]=, $pop[[L0]]
160- ; BULK-MEM-NEXT: br_if 0, $pop[[L1]]
161- ; BULK-MEM-NEXT: i32.const $push[[L2:[0-9]+]]=, 1024
162- ; BULK-MEM-NEXT: memory.copy 0, 0, $0, $1, $pop[[L2]]
163- ; BULK-MEM-NEXT: .LBB{{.*}}:
164- ; BULK-MEM-NEXT: end_block
177+ ; BULK-MEM-NEXT: memory.copy 0, 0, $0, $1, $pop[[L0]]
165178; BULK-MEM-NEXT: return
166179define void @memmove_1024 (ptr %dest , ptr %src ) {
167180 call void @llvm.memmove.p0.p0.i32 (ptr %dest , ptr %src , i32 1024 , i1 0 )
@@ -171,14 +184,8 @@ define void @memmove_1024(ptr %dest, ptr %src) {
171184; CHECK-LABEL: memset_1024:
172185; NO-BULK-MEM-NOT: memory.fill
173186; BULK-MEM-NEXT: .functype memset_1024 (i32, i32) -> ()
174- ; BULK-MEM-NEXT: block
175187; BULK-MEM-NEXT: i32.const $push[[L0:[0-9]+]]=, 1024
176- ; BULK-MEM-NEXT: i32.eqz $push[[L1:[0-9]+]]=, $pop[[L0]]
177- ; BULK-MEM-NEXT: br_if 0, $pop[[L1]]
178- ; BULK-MEM-NEXT: i32.const $push[[L2:[0-9]+]]=, 1024
179- ; BULK-MEM-NEXT: memory.fill 0, $0, $1, $pop[[L2]]
180- ; BULK-MEM-NEXT: .LBB{{.*}}:
181- ; BULK-MEM-NEXT: end_block
188+ ; BULK-MEM-NEXT: memory.fill 0, $0, $1, $pop[[L0]]
182189; BULK-MEM-NEXT: return
183190define void @memset_1024 (ptr %dest , i8 %val ) {
184191 call void @llvm.memset.p0.i32 (ptr %dest , i8 %val , i32 1024 , i1 0 )
@@ -201,17 +208,11 @@ define void @memset_1024(ptr %dest, i8 %val) {
201208; BULK-MEM-NEXT: .functype memcpy_alloca_src (i32) -> ()
202209; BULK-MEM-NEXT: global.get $push[[L0:[0-9]+]]=, __stack_pointer
203210; BULK-MEM-NEXT: i32.const $push[[L1:[0-9]+]]=, 112
204- ; BULK-MEM-NEXT: i32.sub $[[L2:[0-9]+]]=, $pop[[L0]], $pop[[L1]]
205- ; BULK-MEM-NEXT: block
206- ; BULK-MEM-NEXT: i32.const $push[[L3:[0-9]+]]=, 100
207- ; BULK-MEM-NEXT: i32.eqz $push[[L4:[0-9]+]]=, $pop[[L3]]
208- ; BULK-MEM-NEXT: br_if 0, $pop[[L4]]
209- ; BULK-MEM-NEXT: i32.const $push[[L5:[0-9]+]]=, 12
210- ; BULK-MEM-NEXT: i32.add $push[[L6:[0-9]+]]=, $[[L2]], $pop[[L5]]
211- ; BULK-MEM-NEXT: i32.const $push[[L7:[0-9]+]]=, 100
212- ; BULK-MEM-NEXT: memory.copy 0, 0, $0, $pop[[L6]], $pop[[L7]]
213- ; BULK-MEM-NEXT: .LBB{{.*}}:
214- ; BULK-MEM-NEXT: end_block
211+ ; BULK-MEM-NEXT: i32.sub $push[[L2:[0-9]+]]=, $pop[[L0]], $pop[[L1]]
212+ ; BULK-MEM-NEXT: i32.const $push[[L3:[0-9]+]]=, 12
213+ ; BULK-MEM-NEXT: i32.add $push[[L4:[0-9]+]]=, $pop[[L2]], $pop[[L3]]
214+ ; BULK-MEM-NEXT: i32.const $push[[L5:[0-9]+]]=, 100
215+ ; BULK-MEM-NEXT: memory.copy 0, 0, $0, $pop[[L4]], $pop[[L5]]
215216; BULK-MEM-NEXT: return
216217define void @memcpy_alloca_src (ptr %dst ) {
217218 %a = alloca [100 x i8 ]
@@ -224,17 +225,11 @@ define void @memcpy_alloca_src(ptr %dst) {
224225; BULK-MEM-NEXT: .functype memcpy_alloca_dst (i32) -> ()
225226; BULK-MEM-NEXT: global.get $push[[L0:[0-9]+]]=, __stack_pointer
226227; BULK-MEM-NEXT: i32.const $push[[L1:[0-9]+]]=, 112
227- ; BULK-MEM-NEXT: i32.sub $[[L2:[0-9]+]]=, $pop[[L0]], $pop[[L1]]
228- ; BULK-MEM-NEXT: block
229- ; BULK-MEM-NEXT: i32.const $push[[L3:[0-9]+]]=, 100
230- ; BULK-MEM-NEXT: i32.eqz $push[[L4:[0-9]+]]=, $pop[[L3]]
231- ; BULK-MEM-NEXT: br_if 0, $pop[[L4]]
232- ; BULK-MEM-NEXT: i32.const $push[[L5:[0-9]+]]=, 12
233- ; BULK-MEM-NEXT: i32.add $push[[L6:[0-9]+]]=, $[[L2]], $pop[[L5]]
234- ; BULK-MEM-NEXT: i32.const $push[[L7:[0-9]+]]=, 100
235- ; BULK-MEM-NEXT: memory.copy 0, 0, $pop[[L6]], $0, $pop[[L7]]
236- ; BULK-MEM-NEXT: .LBB{{.*}}:
237- ; BULK-MEM-NEXT: end_block
228+ ; BULK-MEM-NEXT: i32.sub $push[[L2:[0-9]+]]=, $pop[[L0]], $pop[[L1]]
229+ ; BULK-MEM-NEXT: i32.const $push[[L3:[0-9]+]]=, 12
230+ ; BULK-MEM-NEXT: i32.add $push[[L4:[0-9]+]]=, $pop[[L2]], $pop[[L3]]
231+ ; BULK-MEM-NEXT: i32.const $push[[L5:[0-9]+]]=, 100
232+ ; BULK-MEM-NEXT: memory.copy 0, 0, $pop[[L4]], $0, $pop[[L5]]
238233; BULK-MEM-NEXT: return
239234define void @memcpy_alloca_dst (ptr %src ) {
240235 %a = alloca [100 x i8 ]
@@ -247,17 +242,11 @@ define void @memcpy_alloca_dst(ptr %src) {
247242; BULK-MEM-NEXT: .functype memset_alloca (i32) -> ()
248243; BULK-MEM-NEXT: global.get $push[[L0:[0-9]+]]=, __stack_pointer
249244; BULK-MEM-NEXT: i32.const $push[[L1:[0-9]+]]=, 112
250- ; BULK-MEM-NEXT: i32.sub $1=, $pop[[L0]], $pop[[L1]]
251- ; BULK-MEM-NEXT: block
252- ; BULK-MEM-NEXT: i32.const $push[[L2:[0-9]+]]=, 100
253- ; BULK-MEM-NEXT: i32.eqz $push[[L3:[0-9]+]]=, $pop[[L2]]
254- ; BULK-MEM-NEXT: br_if 0, $pop[[L3]]
255- ; BULK-MEM-NEXT: i32.const $push[[L4:[0-9]+]]=, 12
256- ; BULK-MEM-NEXT: i32.add $push[[L5:[0-9]+]]=, $1, $pop[[L4]]
257- ; BULK-MEM-NEXT: i32.const $push[[L6:[0-9]+]]=, 100
258- ; BULK-MEM-NEXT: memory.fill 0, $pop[[L5]], $0, $pop[[L6]]
259- ; BULK-MEM-NEXT: .LBB{{.*}}:
260- ; BULK-MEM-NEXT: end_block
245+ ; BULK-MEM-NEXT: i32.sub $push[[L2:[0-9]+]]=, $pop[[L0]], $pop[[L1]]
246+ ; BULK-MEM-NEXT: i32.const $push[[L3:[0-9]+]]=, 12
247+ ; BULK-MEM-NEXT: i32.add $push[[L4:[0-9]+]]=, $pop[[L2]], $pop[[L3]]
248+ ; BULK-MEM-NEXT: i32.const $push[[L5:[0-9]+]]=, 100
249+ ; BULK-MEM-NEXT: memory.fill 0, $pop[[L4]], $0, $pop[[L5]]
261250; BULK-MEM-NEXT: return
262251define void @memset_alloca (i8 %val ) {
263252 %a = alloca [100 x i8 ]
0 commit comments