[clang] [CIR] Added case for builtins in CIRGen (PR #218852)

Andy Kaylor via cfe-commits cfe-commits at lists.llvm.org
Wed Aug 26 09:52:47 PDT 2026


================
@@ -1640,12 +1638,36 @@ RValue CIRGenFunction::emitBuiltinExpr(const GlobalDecl &gd, unsigned builtinID,
   case Builtin::BI__builtin_rotateleft32:
   case Builtin::BI__builtin_rotateleft64:
     return emitRotate(e, /*isRotateLeft=*/true);
+  case Builtin::BI__builtin_stdc_rotate_left:
+  case Builtin::BIstdc_rotate_left_uc:
+  case Builtin::BIstdc_rotate_left_us:
+  case Builtin::BIstdc_rotate_left_ui:
+  case Builtin::BIstdc_rotate_left_ul:
+  case Builtin::BIstdc_rotate_left_ull:
+    return emitRotate(e, /*isRotateLeft=*/true);
 
   case Builtin::BI__builtin_rotateright8:
   case Builtin::BI__builtin_rotateright16:
   case Builtin::BI__builtin_rotateright32:
   case Builtin::BI__builtin_rotateright64:
     return emitRotate(e, /*isRotateLeft=*/false);
+  case Builtin::BI__builtin_stdc_rotate_right:
+  case Builtin::BIstdc_rotate_right_uc:
+  case Builtin::BIstdc_rotate_right_us:
+  case Builtin::BIstdc_rotate_right_ui:
+  case Builtin::BIstdc_rotate_right_ul:
+  case Builtin::BIstdc_rotate_right_ull:
+    return emitRotate(e, /*isRotateLeft=*/false);
+  case Builtin::BIstdc_memreverse8u8:
----------------
andykaylor wrote:

Classic codegen has a useful comment here that we should copy: "// stdc_memreverse8u8 is a no-op (single byte, nothing to swap)."

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


More information about the cfe-commits mailing list