[clang] [llvm] [PowerPC] Add restriction for rldimi builtin (PR #85040)

Chen Zheng via cfe-commits cfe-commits at lists.llvm.org
Wed Mar 13 22:57:51 PDT 2024


================
@@ -24,13 +24,17 @@ void test_trap(void) {
   __tw(ia, ib, 0); //expected-error {{argument value 0 is outside the valid range [1, 31]}}
 }
 
+#ifdef __PPC64__
 void test_builtin_ppc_rldimi() {
   unsigned int shift;
   unsigned long long mask;
   unsigned long long res = __builtin_ppc_rldimi(ull, ull, shift, 7); // expected-error {{argument to '__builtin_ppc_rldimi' must be a constant integer}}
   res = __builtin_ppc_rldimi(ull, ull, 63, mask);                    // expected-error {{argument to '__builtin_ppc_rldimi' must be a constant integer}}
   res = __builtin_ppc_rldimi(ull, ull, 63, 0xFFFF000000000F00);      // expected-error {{argument 3 value should represent a contiguous bit field}}
+  res = __builtin_ppc_rldimi(ull, ull, 63, 0xFFFF000000000F00);      // expected-error {{argument 3 value should represent a contiguous bit field}}
----------------
chenzheng1030 wrote:

Miss a case for shift value > 63?

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


More information about the cfe-commits mailing list