@@ -48,27 +48,47 @@ vi4 vec_e = { 1, 2, 3, 4 };
4848
4949// OGCG: @[[VEC_E:.*]] = global <4 x i32> <i32 1, i32 2, i32 3, i32 4>
5050
51+ int x = 5 ;
52+
5153void foo () {
5254 vi4 a;
5355 vi3 b;
5456 vi2 c;
5557 vd2 d;
58+
59+ vi4 e = { 1 , 2 , 3 , 4 };
60+
61+ vi4 f = { x, 5 , 6 , x + 1 };
5662}
5763
5864// CIR: %[[VEC_A:.*]] = cir.alloca !cir.vector<4 x !s32i>, !cir.ptr<!cir.vector<4 x !s32i>>, ["a"]
5965// CIR: %[[VEC_B:.*]] = cir.alloca !cir.vector<3 x !s32i>, !cir.ptr<!cir.vector<3 x !s32i>>, ["b"]
6066// CIR: %[[VEC_C:.*]] = cir.alloca !cir.vector<2 x !s32i>, !cir.ptr<!cir.vector<2 x !s32i>>, ["c"]
6167// CIR: %[[VEC_D:.*]] = cir.alloca !cir.vector<2 x !cir.double>, !cir.ptr<!cir.vector<2 x !cir.double>>, ["d"]
68+ // CIR: %[[VEC_E:.*]] = cir.alloca !cir.vector<4 x !s32i>, !cir.ptr<!cir.vector<4 x !s32i>>, ["e", init]
69+ // CIR: %[[VEC_F:.*]] = cir.alloca !cir.vector<4 x !s32i>, !cir.ptr<!cir.vector<4 x !s32i>>, ["f", init]
70+ // CIR: %[[VEC_E_VAL:.*]] = cir.vec.create({{.*}}, {{.*}}, {{.*}}, {{.*}} : !s32i, !s32i, !s32i, !s32i) : !cir.vector<4 x !s32i>
71+ // CIR: cir.store %[[VEC_E_VAL]], %[[VEC_E]] : !cir.vector<4 x !s32i>, !cir.ptr<!cir.vector<4 x !s32i>>
72+ // CIR: %[[VEC_F_VAL:.*]] = cir.vec.create({{.*}}, {{.*}}, {{.*}}, {{.*}} : !s32i, !s32i, !s32i, !s32i) : !cir.vector<4 x !s32i>
73+ // CIR: cir.store %[[VEC_F_VAL]], %[[VEC_F]] : !cir.vector<4 x !s32i>, !cir.ptr<!cir.vector<4 x !s32i>>
6274
6375// LLVM: %[[VEC_A:.*]] = alloca <4 x i32>, i64 1, align 16
6476// LLVM: %[[VEC_B:.*]] = alloca <3 x i32>, i64 1, align 16
6577// LLVM: %[[VEC_C:.*]] = alloca <2 x i32>, i64 1, align 8
6678// LLVM: %[[VEC_D:.*]] = alloca <2 x double>, i64 1, align 16
79+ // LLVM: %[[VEC_E:.*]] = alloca <4 x i32>, i64 1, align 16
80+ // LLVM: %[[VEC_F:.*]] = alloca <4 x i32>, i64 1, align 16
81+ // 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
6783
6884// OGCG: %[[VEC_A:.*]] = alloca <4 x i32>, align 16
6985// OGCG: %[[VEC_B:.*]] = alloca <3 x i32>, align 16
7086// OGCG: %[[VEC_C:.*]] = alloca <2 x i32>, align 8
7187// OGCG: %[[VEC_D:.*]] = alloca <2 x double>, align 16
88+ // OGCG: %[[VEC_E:.*]] = alloca <4 x i32>, align 16
89+ // OGCG: %[[VEC_F:.*]] = alloca <4 x i32>, align 16
90+ // 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
7292
7393void foo2 (vi4 p) {}
7494
0 commit comments