[clang] c1eacc3 - [Matrix] Fix test on SystemZ
Francis Visoiu Mistrih via cfe-commits
cfe-commits at lists.llvm.org
Tue Sep 5 11:23:11 PDT 2023
Author: Francis Visoiu Mistrih
Date: 2023-09-05T14:22:55-04:00
New Revision: c1eacc3c409458cbd2de85c21af2df8562d73bef
URL: https://github.com/llvm/llvm-project/commit/c1eacc3c409458cbd2de85c21af2df8562d73bef
DIFF: https://github.com/llvm/llvm-project/commit/c1eacc3c409458cbd2de85c21af2df8562d73bef.diff
LOG: [Matrix] Fix test on SystemZ
As reported by @uweigand in https://reviews.llvm.org/D158883:
```
The newly added test cases in ffp-model.c fail on SystemZ, making CI red:
https://lab.llvm.org/buildbot/#/builders/94/builds/16280
The root cause seems to be that by default, the SystemZ back-end targets
a machine without SIMD support, and therefore vector return types are
passed via implicit reference according to the ABI
```
this uses manual stores instead of vector returns.
Added:
Modified:
clang/test/CodeGen/ffp-model.c
Removed:
################################################################################
diff --git a/clang/test/CodeGen/ffp-model.c b/clang/test/CodeGen/ffp-model.c
index b3d297a2f85f46f..780603284a99f7a 100644
--- a/clang/test/CodeGen/ffp-model.c
+++ b/clang/test/CodeGen/ffp-model.c
@@ -49,9 +49,9 @@ float mymuladd(float x, float y, float z) {
typedef float __attribute__((ext_vector_type(2))) v2f;
-v2f my_vec_muladd(v2f x, float y, v2f z) {
- // CHECK: define{{.*}} @my_vec_muladd
- return x * y + z;
+void my_vec_muladd(v2f x, float y, v2f z, v2f *res) {
+ // CHECK: define{{.*}}@my_vec_muladd
+ *res = x * y + z;
// CHECK-FAST: fmul fast <2 x float>
// CHECK-FAST: load <2 x float>, ptr
@@ -83,9 +83,9 @@ v2f my_vec_muladd(v2f x, float y, v2f z) {
typedef float __attribute__((matrix_type(2, 1))) m21f;
-m21f my_m21_muladd(m21f x, float y, m21f z) {
- // CHECK: define{{.*}} <2 x float> @my_m21_muladd
- return x * y + z;
+void my_m21_muladd(m21f x, float y, m21f z, m21f *res) {
+ // CHECK: define{{.*}}@my_m21_muladd
+ *res = x * y + z;
// CHECK-FAST: fmul fast <2 x float>
// CHECK-FAST: load <2 x float>, ptr
@@ -117,9 +117,9 @@ m21f my_m21_muladd(m21f x, float y, m21f z) {
typedef float __attribute__((matrix_type(2, 2))) m22f;
-m22f my_m22_muladd(m22f x, float y, m22f z) {
- // CHECK: define{{.*}} <4 x float> @my_m22_muladd
- return x * y + z;
+void my_m22_muladd(m22f x, float y, m22f z, m22f *res) {
+ // CHECK: define{{.*}}@my_m22_muladd
+ *res = x * y + z;
// CHECK-FAST: fmul fast <4 x float>
// CHECK-FAST: load <4 x float>, ptr
More information about the cfe-commits
mailing list