You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
; CHECK-NEXT: [[CAST_SCALABLE:%.*]] = tail call <vscale x 4 x float> @llvm.vector.insert.nxv4f32.v16f32(<vscale x 4 x float> poison, <16 x float> [[TMP1]], i64 0)
653
+
; CHECK-NEXT: ret <vscale x 4 x float> [[CAST_SCALABLE]]
654
+
;
655
+
entry:
656
+
%retval = alloca { <16 x float> }
657
+
%0 = fadd <vscale x 4 x float> %.coerce, %.coerce
658
+
store <vscale x 4 x float> %0, ptr%retval
659
+
%1 = load <16 x float>, ptr%retval
660
+
%cast.scalable = tailcall <vscale x 4 x float> @llvm.vector.insert.nxv4f32.v16f32(<vscale x 4 x float> poison, <16 x float> %1, i640)
661
+
ret <vscale x 4 x float> %cast.scalable
662
+
}
663
+
664
+
define <vscale x 4 x float> @scalable_store_to_fixed_load_unknon_vscale(<vscale x 4 x float> %.coerce) {
; CHECK-NEXT: [[CAST_SCALABLE:%.*]] = tail call <vscale x 4 x float> @llvm.vector.insert.nxv4f32.v16f32(<vscale x 4 x float> poison, <16 x float> [[TMP1]], i64 0)
672
+
; CHECK-NEXT: ret <vscale x 4 x float> [[CAST_SCALABLE]]
673
+
;
674
+
entry:
675
+
%retval = alloca { <16 x float> }
676
+
%0 = fadd <vscale x 4 x float> %.coerce, %.coerce
677
+
store <vscale x 4 x float> %0, ptr%retval
678
+
%1 = load <16 x float>, ptr%retval
679
+
%cast.scalable = tailcall <vscale x 4 x float> @llvm.vector.insert.nxv4f32.v16f32(<vscale x 4 x float> poison, <16 x float> %1, i640)
680
+
ret <vscale x 4 x float> %cast.scalable
681
+
}
682
+
683
+
define <vscale x 4 x float> @scalable_store_to_fixed_load_size_missmatch(<vscale x 4 x float> %.coerce) #1 {
; CHECK-NEXT: [[CAST_SCALABLE:%.*]] = tail call <vscale x 4 x float> @llvm.vector.insert.nxv4f32.v32f32(<vscale x 4 x float> poison, <32 x float> [[TMP1]], i64 0)
691
+
; CHECK-NEXT: ret <vscale x 4 x float> [[CAST_SCALABLE]]
692
+
;
693
+
entry:
694
+
%retval = alloca { <32 x float> }
695
+
%0 = fadd <vscale x 4 x float> %.coerce, %.coerce
696
+
store <vscale x 4 x float> %0, ptr%retval
697
+
%1 = load <32 x float>, ptr%retval
698
+
%cast.scalable = tailcall <vscale x 4 x float> @llvm.vector.insert.nxv4f32.v32f32(<vscale x 4 x float> poison, <32 x float> %1, i640)
699
+
ret <vscale x 4 x float> %cast.scalable
700
+
}
701
+
702
+
declare <vscale x 4 x float> @llvm.vector.insert.nxv4f32.v16f32(<vscale x 4 x float>, <16 x float>, i64 immarg)
703
+
declare <vscale x 4 x float> @llvm.vector.insert.nxv4f32.v32f32(<vscale x 4 x float>, <32 x float>, i64 immarg)
0 commit comments