https://github.com/ebinjose02 updated 
https://github.com/llvm/llvm-project/pull/169285

>From 8702e84f465feb7707225bbaf9c1d32d8bca1f44 Mon Sep 17 00:00:00 2001
From: ebinjose02 <[email protected]>
Date: Mon, 24 Nov 2025 07:02:26 +0000
Subject: [PATCH] Fixes #168690 Prevents assertion in CGBuiltin for i1 -
 returns identity. Created test file for the same.

---
 clang/lib/CodeGen/CGBuiltin.cpp     | 2 ++
 clang/test/CodeGen/builtin_bswapg.c | 8 ++++++++
 2 files changed, 10 insertions(+)
 create mode 100644 clang/test/CodeGen/builtin_bswapg.c

diff --git a/clang/lib/CodeGen/CGBuiltin.cpp b/clang/lib/CodeGen/CGBuiltin.cpp
index 93f691e4c2267..8bcc2c8e7d8fe 100644
--- a/clang/lib/CodeGen/CGBuiltin.cpp
+++ b/clang/lib/CodeGen/CGBuiltin.cpp
@@ -3653,6 +3653,8 @@ RValue CodeGenFunction::EmitBuiltinExpr(const GlobalDecl 
GD, unsigned BuiltinID,
     Value *ArgValue = EmitScalarExpr(E->getArg(0));
     llvm::IntegerType *IntTy = cast<llvm::IntegerType>(ArgValue->getType());
     assert(IntTy && "LLVM's __builtin_bswapg only supports integer variants");
+    if (IntTy->getBitWidth() == 1)
+      return RValue::get(ArgValue);
     assert(((IntTy->getBitWidth() % 16 == 0 && IntTy->getBitWidth() != 0) ||
             IntTy->getBitWidth() == 8) &&
            "LLVM's __builtin_bswapg only supports integer variants that has a "
diff --git a/clang/test/CodeGen/builtin_bswapg.c 
b/clang/test/CodeGen/builtin_bswapg.c
new file mode 100644
index 0000000000000..8e9af98a58d35
--- /dev/null
+++ b/clang/test/CodeGen/builtin_bswapg.c
@@ -0,0 +1,8 @@
+// RUN: %clang_cc1 -triple x86_64 -O0 -emit-llvm -o - %s | FileCheck %s
+
+auto test_bswapg(bool c) {
+  return __builtin_bswapg(c);
+}
+
+// CHECK-LABEL: define{{.*}} i1 @_Z11test_bswapgb(
+// CHECK: ret i1 %{{.*}}

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

Reply via email to