@@ -89,3 +89,30 @@ void test_builtin_elementwise_atan(float f, double d, vfloat4 vf4,
89
89
// OGCG: %{{.*}} = call <4 x double> @llvm.atan.v4f64(<4 x double> %{{.*}})
90
90
vd4 = __builtin_elementwise_atan (vd4 );
91
91
}
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