@@ -59,6 +59,8 @@ void foo() {
5959 vi4 e = { 1 , 2 , 3 , 4 };
6060
6161 vi4 f = { x, 5 , 6 , x + 1 };
62+
63+ vi4 g = { 5 };
6264}
6365
6466// CIR: %[[VEC_A:.*]] = cir.alloca !cir.vector<4 x !s32i>, !cir.ptr<!cir.vector<4 x !s32i>>, ["a"]
@@ -67,28 +69,35 @@ void foo() {
6769// CIR: %[[VEC_D:.*]] = cir.alloca !cir.vector<2 x !cir.double>, !cir.ptr<!cir.vector<2 x !cir.double>>, ["d"]
6870// CIR: %[[VEC_E:.*]] = cir.alloca !cir.vector<4 x !s32i>, !cir.ptr<!cir.vector<4 x !s32i>>, ["e", init]
6971// CIR: %[[VEC_F:.*]] = cir.alloca !cir.vector<4 x !s32i>, !cir.ptr<!cir.vector<4 x !s32i>>, ["f", init]
72+ // CIR: %[[VEC_G:.*]] = cir.alloca !cir.vector<4 x !s32i>, !cir.ptr<!cir.vector<4 x !s32i>>, ["g", init]
7073// CIR: %[[VEC_E_VAL:.*]] = cir.vec.create({{.*}}, {{.*}}, {{.*}}, {{.*}} : !s32i, !s32i, !s32i, !s32i) : !cir.vector<4 x !s32i>
7174// CIR: cir.store %[[VEC_E_VAL]], %[[VEC_E]] : !cir.vector<4 x !s32i>, !cir.ptr<!cir.vector<4 x !s32i>>
7275// CIR: %[[VEC_F_VAL:.*]] = cir.vec.create({{.*}}, {{.*}}, {{.*}}, {{.*}} : !s32i, !s32i, !s32i, !s32i) : !cir.vector<4 x !s32i>
7376// CIR: cir.store %[[VEC_F_VAL]], %[[VEC_F]] : !cir.vector<4 x !s32i>, !cir.ptr<!cir.vector<4 x !s32i>>
77+ // CIR: %[[VEC_G_VAL:.*]] = cir.vec.create({{.*}}, {{.*}}, {{.*}}, {{.*}} : !s32i, !s32i, !s32i, !s32i) : !cir.vector<4 x !s32i>
78+ // CIR: cir.store %[[VEC_G_VAL]], %[[VEC_G]] : !cir.vector<4 x !s32i>, !cir.ptr<!cir.vector<4 x !s32i>>
7479
7580// LLVM: %[[VEC_A:.*]] = alloca <4 x i32>, i64 1, align 16
7681// LLVM: %[[VEC_B:.*]] = alloca <3 x i32>, i64 1, align 16
7782// LLVM: %[[VEC_C:.*]] = alloca <2 x i32>, i64 1, align 8
7883// LLVM: %[[VEC_D:.*]] = alloca <2 x double>, i64 1, align 16
7984// LLVM: %[[VEC_E:.*]] = alloca <4 x i32>, i64 1, align 16
8085// LLVM: %[[VEC_F:.*]] = alloca <4 x i32>, i64 1, align 16
86+ // LLVM: %[[VEC_G:.*]] = alloca <4 x i32>, i64 1, align 16
8187// LLVM: store <4 x i32> <i32 1, i32 2, i32 3, i32 4>, ptr %[[VEC_E]], align 16
82- // LLVM: store <4 x i32> {{.*}}, ptr %[[VEC_F:.*]], align 16
88+ // LLVM: store <4 x i32> {{.*}}, ptr %[[VEC_F]], align 16
89+ // LLVM: store <4 x i32> <i32 5, i32 0, i32 0, i32 0>, ptr %[[VEC_G]], align 16
8390
8491// OGCG: %[[VEC_A:.*]] = alloca <4 x i32>, align 16
8592// OGCG: %[[VEC_B:.*]] = alloca <3 x i32>, align 16
8693// OGCG: %[[VEC_C:.*]] = alloca <2 x i32>, align 8
8794// OGCG: %[[VEC_D:.*]] = alloca <2 x double>, align 16
8895// OGCG: %[[VEC_E:.*]] = alloca <4 x i32>, align 16
8996// OGCG: %[[VEC_F:.*]] = alloca <4 x i32>, align 16
97+ // OGCG: %[[VEC_G:.*]] = alloca <4 x i32>, align 16
9098// OGCG: store <4 x i32> <i32 1, i32 2, i32 3, i32 4>, ptr %[[VEC_E]], align 16
91- // OGCG: store <4 x i32> {{.*}}, ptr %[[VEC_F:.*]], align 16
99+ // OGCG: store <4 x i32> {{.*}}, ptr %[[VEC_F]], align 16
100+ // OGCG: store <4 x i32> <i32 5, i32 0, i32 0, i32 0>, ptr %[[VEC_G]], align 16
92101
93102void foo2 (vi4 p) {}
94103
0 commit comments