================
@@ -229,3 +229,10 @@ void test_atomic_dec64() {
   __INT64_TYPE__ signedVal = 15;
   signedVal = __builtin_amdgcn_atomic_dec64(&signedVal, signedVal, 
__ATOMIC_ACQUIRE, ""); // expected-warning {{passing '__private long *' to 
parameter of type 'volatile __private unsigned long *' converts between 
pointers to integer types with different sign}}
 }
+
+void test_wave_shuffle(double d, int i, long long lli) {
+  struct S { int x; } s;
+  int x = __builtin_amdgcn_wave_shuffle(lli, i); // expected-error {{'lli' 
argument must be a scalar 'int' or 16 or 32 bit floating-point type (was 
'__private long long')}}
+  int y = __builtin_amdgcn_wave_shuffle(i, lli); // expected-error {{'lli' 
argument must be a scalar 'int' type (was '__private long long')}}
+  float z = __builtin_amdgcn_wave_shuffle(s, i); // expected-error {{'s' 
argument must be a scalar 'int' or 16 or 32 bit floating-point type (was 
'__private struct S')}}
+}
----------------
arsenm wrote:

Make sure it's rejected for char/short/bitint/half? Does <2 x i16> work?

https://github.com/llvm/llvm-project/pull/179492
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to