@@ -192,7 +192,7 @@ define %jl_value_t addrspace(10)* @no_redundant_rerooting(i64 %a, i1 %cond) {
192
192
top:
193
193
%ptls = call %jl_value_t*** @jl_get_ptls_states ()
194
194
%aboxed = call %jl_value_t addrspace (10 )* @jl_box_int64 (i64 signext %a )
195
- ; CHECK: store %jl_value_t addrspace(10)* %aboxed
195
+ ; CHECK: store %jl_value_t addrspace(10)* %aboxed
196
196
; CHECK-NEXT: call void @jl_safepoint()
197
197
call void @jl_safepoint ()
198
198
br i1 %cond , label %blocka , label %blockb
@@ -207,3 +207,19 @@ blockb:
207
207
call void @jl_safepoint ()
208
208
ret %jl_value_t addrspace (10 )* %aboxed
209
209
}
210
+
211
+ declare void @llvm.memcpy.p064.p10i8.i64 (i64* , i8 addrspace (10 )*, i64 , i32 , i1 )
212
+
213
+ define void @memcpy_use (i64 %a , i64 *%aptr ) {
214
+ ; CHECK-LABEL: @memcpy_use
215
+ ; CHECK: %gcframe = alloca %jl_value_t addrspace(10)*, i32 3
216
+ top:
217
+ %ptls = call %jl_value_t*** @jl_get_ptls_states ()
218
+ %aboxed = call %jl_value_t addrspace (10 )* @jl_box_int64 (i64 signext %a )
219
+ ; CHECK: store %jl_value_t addrspace(10)* %aboxed
220
+ call void @jl_safepoint ()
221
+ %acast = bitcast %jl_value_t addrspace (10 )* %aboxed to i8 addrspace (10 )*
222
+ call void @llvm.memcpy.p064.p10i8.i64 (i64* %aptr , i8 addrspace (10 )* %acast , i64 8 , i32 1 , i1 false )
223
+ ret void
224
+ }
225
+
0 commit comments