[clang] [AMDGPU][GFX12] Add tests for unsupported builtins (PR #78729)

Jay Foad via cfe-commits cfe-commits at lists.llvm.org
Wed Jan 24 03:03:12 PST 2024


================
@@ -4,10 +4,114 @@
 
 typedef unsigned int uint;
 
-kernel void test_builtins_amdgcn_gws_insts(uint a, uint b) {
+#pragma OPENCL EXTENSION cl_khr_fp64:enable
+
+typedef float  v2f   __attribute__((ext_vector_type(2)));
+typedef float  v4f   __attribute__((ext_vector_type(4)));
+typedef float  v16f  __attribute__((ext_vector_type(16)));
+typedef float  v32f  __attribute__((ext_vector_type(32)));
+typedef half   v4h   __attribute__((ext_vector_type(4)));
+typedef half   v8h   __attribute__((ext_vector_type(8)));
+typedef half   v16h  __attribute__((ext_vector_type(16)));
+typedef half   v32h  __attribute__((ext_vector_type(32)));
+typedef int    v2i   __attribute__((ext_vector_type(2)));
+typedef int    v4i   __attribute__((ext_vector_type(4)));
+typedef int    v16i  __attribute__((ext_vector_type(16)));
+typedef int    v32i  __attribute__((ext_vector_type(32)));
+typedef short  v2s   __attribute__((ext_vector_type(2)));
+typedef short  v4s   __attribute__((ext_vector_type(4)));
+typedef short  v8s   __attribute__((ext_vector_type(8)));
+typedef short  v16s  __attribute__((ext_vector_type(16)));
+typedef short  v32s  __attribute__((ext_vector_type(32)));
+typedef double v4d   __attribute__((ext_vector_type(4)));
+
+void builtin_test_unsupported(global v32f*    out_v32f,
+                              global v16f*    out_v16f,
+                              global v4f*     out_v4f,
+                              global v32i*    out_v32i,
+                              global v16i*    out_v16i,
+                              global v4i*     out_v4i,
+                              global v4d*     out_v4d,
+                              global double*  out_double,
+                              double a_double , double b_double , double c_double,
----------------
jayfoad wrote:

Nit: you don't really need separate out/a/b/c versions of all these types. You could just test expressions like:
```
x_v32f = __builtin_amdgcn_mfma_f32_32x32x1f32(x_float, x_float, x_v32f, 0, 0, 0);
```

https://github.com/llvm/llvm-project/pull/78729


More information about the cfe-commits mailing list