@@ -61,6 +61,8 @@ void foo() {
61
61
vi4 f = { x, 5 , 6 , x + 1 };
62
62
63
63
vi4 g = { 5 };
64
+
65
+ vi4 h = {};
64
66
}
65
67
66
68
// CIR: %[[VEC_A:.*]] = cir.alloca !cir.vector<4 x !s32i>, !cir.ptr<!cir.vector<4 x !s32i>>, ["a"]
@@ -70,12 +72,15 @@ void foo() {
70
72
// CIR: %[[VEC_E:.*]] = cir.alloca !cir.vector<4 x !s32i>, !cir.ptr<!cir.vector<4 x !s32i>>, ["e", init]
71
73
// CIR: %[[VEC_F:.*]] = cir.alloca !cir.vector<4 x !s32i>, !cir.ptr<!cir.vector<4 x !s32i>>, ["f", init]
72
74
// CIR: %[[VEC_G:.*]] = cir.alloca !cir.vector<4 x !s32i>, !cir.ptr<!cir.vector<4 x !s32i>>, ["g", init]
75
+ // CIR: %[[VEC_H:.*]] = cir.alloca !cir.vector<4 x !s32i>, !cir.ptr<!cir.vector<4 x !s32i>>, ["h", init]
73
76
// CIR: %[[VEC_E_VAL:.*]] = cir.vec.create({{.*}}, {{.*}}, {{.*}}, {{.*}} : !s32i, !s32i, !s32i, !s32i) : !cir.vector<4 x !s32i>
74
77
// CIR: cir.store %[[VEC_E_VAL]], %[[VEC_E]] : !cir.vector<4 x !s32i>, !cir.ptr<!cir.vector<4 x !s32i>>
75
78
// CIR: %[[VEC_F_VAL:.*]] = cir.vec.create({{.*}}, {{.*}}, {{.*}}, {{.*}} : !s32i, !s32i, !s32i, !s32i) : !cir.vector<4 x !s32i>
76
79
// CIR: cir.store %[[VEC_F_VAL]], %[[VEC_F]] : !cir.vector<4 x !s32i>, !cir.ptr<!cir.vector<4 x !s32i>>
77
80
// CIR: %[[VEC_G_VAL:.*]] = cir.vec.create({{.*}}, {{.*}}, {{.*}}, {{.*}} : !s32i, !s32i, !s32i, !s32i) : !cir.vector<4 x !s32i>
78
81
// CIR: cir.store %[[VEC_G_VAL]], %[[VEC_G]] : !cir.vector<4 x !s32i>, !cir.ptr<!cir.vector<4 x !s32i>>
82
+ // CIR: %[[VEC_H_VAL:.*]] = cir.vec.create({{.*}}, {{.*}}, {{.*}}, {{.*}} : !s32i, !s32i, !s32i, !s32i) : !cir.vector<4 x !s32i>
83
+ // CIR: cir.store %[[VEC_H_VAL]], %[[VEC_H]] : !cir.vector<4 x !s32i>, !cir.ptr<!cir.vector<4 x !s32i>>
79
84
80
85
// LLVM: %[[VEC_A:.*]] = alloca <4 x i32>, i64 1, align 16
81
86
// LLVM: %[[VEC_B:.*]] = alloca <3 x i32>, i64 1, align 16
@@ -84,9 +89,11 @@ void foo() {
84
89
// LLVM: %[[VEC_E:.*]] = alloca <4 x i32>, i64 1, align 16
85
90
// LLVM: %[[VEC_F:.*]] = alloca <4 x i32>, i64 1, align 16
86
91
// LLVM: %[[VEC_G:.*]] = alloca <4 x i32>, i64 1, align 16
92
+ // LLVM: %[[VEC_H:.*]] = alloca <4 x i32>, i64 1, align 16
87
93
// LLVM: store <4 x i32> <i32 1, i32 2, i32 3, i32 4>, ptr %[[VEC_E]], align 16
88
94
// LLVM: store <4 x i32> {{.*}}, ptr %[[VEC_F]], align 16
89
95
// LLVM: store <4 x i32> <i32 5, i32 0, i32 0, i32 0>, ptr %[[VEC_G]], align 16
96
+ // LLVM: store <4 x i32> zeroinitializer, ptr %[[VEC_H]], align 16
90
97
91
98
// OGCG: %[[VEC_A:.*]] = alloca <4 x i32>, align 16
92
99
// OGCG: %[[VEC_B:.*]] = alloca <3 x i32>, align 16
@@ -95,9 +102,11 @@ void foo() {
95
102
// OGCG: %[[VEC_E:.*]] = alloca <4 x i32>, align 16
96
103
// OGCG: %[[VEC_F:.*]] = alloca <4 x i32>, align 16
97
104
// OGCG: %[[VEC_G:.*]] = alloca <4 x i32>, align 16
105
+ // OGCG: %[[VEC_H:.*]] = alloca <4 x i32>, align 16
98
106
// OGCG: store <4 x i32> <i32 1, i32 2, i32 3, i32 4>, ptr %[[VEC_E]], align 16
99
107
// OGCG: store <4 x i32> {{.*}}, ptr %[[VEC_F]], align 16
100
108
// OGCG: store <4 x i32> <i32 5, i32 0, i32 0, i32 0>, ptr %[[VEC_G]], align 16
109
+ // OGCG: store <4 x i32> zeroinitializer, ptr %[[VEC_H]], align 16
101
110
102
111
void foo2 (vi4 p) {}
103
112
0 commit comments