Separate const slice. Fix #1489. Fix const slice appending. Remove unintended print of char[] as String. Support const conversion of array -> slice.

This commit is contained in:
Christoffer Lerno
2024-09-26 22:23:11 +02:00
committed by Christoffer Lerno
parent 7f66d5992f
commit 02e9bfaf31
39 changed files with 1663 additions and 595 deletions

View File

@@ -67,25 +67,25 @@ entry:
%x = alloca %Matrix3x3, align 4
%m = alloca %Matrix2x2, align 4
%m2 = alloca %Matrix2x2_b, align 4
call void @llvm.memcpy.p0.p0.i32(ptr align 4 %x, ptr align 4 @.__const, i32 4, i1 false)
store float 1.000000e+00, ptr %x, align 4
%ptradd = getelementptr inbounds i8, ptr %x, i64 4
call void @llvm.memcpy.p0.p0.i32(ptr align 4 %ptradd, ptr align 4 @.__const.16, i32 4, i1 false)
store float 2.000000e+00, ptr %ptradd, align 4
%ptradd1 = getelementptr inbounds i8, ptr %x, i64 8
call void @llvm.memcpy.p0.p0.i32(ptr align 4 %ptradd1, ptr align 4 @.__const.17, i32 4, i1 false)
store float 3.000000e+00, ptr %ptradd1, align 4
%ptradd2 = getelementptr inbounds i8, ptr %x, i64 12
call void @llvm.memcpy.p0.p0.i32(ptr align 4 %ptradd2, ptr align 4 @.__const.18, i32 4, i1 false)
store float 4.000000e+00, ptr %ptradd2, align 4
%ptradd3 = getelementptr inbounds i8, ptr %x, i64 16
call void @llvm.memcpy.p0.p0.i32(ptr align 4 %ptradd3, ptr align 4 @.__const.19, i32 4, i1 false)
store float 5.000000e+00, ptr %ptradd3, align 4
%ptradd4 = getelementptr inbounds i8, ptr %x, i64 20
call void @llvm.memcpy.p0.p0.i32(ptr align 4 %ptradd4, ptr align 4 @.__const.20, i32 4, i1 false)
store float 6.000000e+00, ptr %ptradd4, align 4
%ptradd5 = getelementptr inbounds i8, ptr %x, i64 24
call void @llvm.memcpy.p0.p0.i32(ptr align 4 %ptradd5, ptr align 4 @.__const.21, i32 4, i1 false)
store float 7.000000e+00, ptr %ptradd5, align 4
%ptradd6 = getelementptr inbounds i8, ptr %x, i64 28
call void @llvm.memcpy.p0.p0.i32(ptr align 4 %ptradd6, ptr align 4 @.__const.22, i32 4, i1 false)
store float 8.000000e+00, ptr %ptradd6, align 4
%ptradd7 = getelementptr inbounds i8, ptr %x, i64 32
call void @llvm.memcpy.p0.p0.i32(ptr align 4 %ptradd7, ptr align 4 @.__const.23, i32 4, i1 false)
call void @llvm.memcpy.p0.p0.i32(ptr align 4 %m, ptr align 4 @.__const.24, i32 16, i1 false)
call void @llvm.memcpy.p0.p0.i32(ptr align 4 %m2, ptr align 4 @.__const.25, i32 16, i1 false)
store float 9.000000e+00, ptr %ptradd7, align 4
call void @llvm.memcpy.p0.p0.i32(ptr align 4 %m, ptr align 4 @.__const, i32 16, i1 false)
call void @llvm.memcpy.p0.p0.i32(ptr align 4 %m2, ptr align 4 @.__const.16, i32 16, i1 false)
%0 = load float, ptr %x, align 4
%fpfpext = fpext float %0 to double
%ptradd8 = getelementptr inbounds i8, ptr %x, i64 4