@@ -89,3 +89,30 @@ void test_builtin_elementwise_atan(float f, double d, vfloat4 vf4,
8989 // OGCG: %{{.*}} = call <4 x double> @llvm.atan.v4f64(<4 x double> %{{.*}})
9090 vd4 = __builtin_elementwise_atan (vd4 );
9191}
92+
93+ void test_builtin_elementwise_cos (float f , double d , vfloat4 vf4 ,
94+ vdouble4 vd4 ) {
95+ // CIR-LABEL: test_builtin_elementwise_cos
96+ // LLVM-LABEL: test_builtin_elementwise_cos
97+ // OGCG-LABEL: test_builtin_elementwise_cos
98+
99+ // CIR: {{%.*}} = cir.cos {{%.*}} : !cir.float
100+ // LLVM: {{%.*}} = call float @llvm.cos.f32(float {{%.*}})
101+ // OGCG: {{%.*}} = call float @llvm.cos.f32(float {{%.*}})
102+ f = __builtin_elementwise_cos (f );
103+
104+ // CIR: {{%.*}} = cir.cos {{%.*}} : !cir.double
105+ // LLVM: {{%.*}} = call double @llvm.cos.f64(double {{%.*}})
106+ // OGCG: {{%.*}} = call double @llvm.cos.f64(double {{%.*}})
107+ d = __builtin_elementwise_cos (d );
108+
109+ // CIR: {{%.*}} = cir.cos {{%.*}} : !cir.vector<4 x !cir.float>
110+ // LLVM: {{%.*}} = call <4 x float> @llvm.cos.v4f32(<4 x float> {{%.*}})
111+ // OGCG: {{%.*}} = call <4 x float> @llvm.cos.v4f32(<4 x float> {{%.*}})
112+ vf4 = __builtin_elementwise_cos (vf4 );
113+
114+ // CIR: {{%.*}} = cir.cos {{%.*}} : !cir.vector<4 x !cir.double>
115+ // LLVM: {{%.*}} = call <4 x double> @llvm.cos.v4f64(<4 x double> {{%.*}})
116+ // OGCG: {{%.*}} = call <4 x double> @llvm.cos.v4f64(<4 x double> {{%.*}})
117+ vd4 = __builtin_elementwise_cos (vd4 );
118+ }
0 commit comments