[llvm-branch-commits] [clang] 7cbbfc9 - Revert "[CIR] Upstream CIR codegen for mxcsr x86 builtins (#167948)"
via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Wed Nov 19 13:49:18 PST 2025
Author: Thibault Monnier
Date: 2025-11-19T22:49:15+01:00
New Revision: 7cbbfc9e5b032c11e1ede196965007fa8fcae53a
URL: https://github.com/llvm/llvm-project/commit/7cbbfc9e5b032c11e1ede196965007fa8fcae53a
DIFF: https://github.com/llvm/llvm-project/commit/7cbbfc9e5b032c11e1ede196965007fa8fcae53a.diff
LOG: Revert "[CIR] Upstream CIR codegen for mxcsr x86 builtins (#167948)"
This reverts commit f85942728fe2edfc681831abf8ecd2f245e1aaaa.
Added:
Modified:
clang/lib/CIR/CodeGen/CIRGenBuiltinX86.cpp
clang/test/CIR/CodeGen/X86/sse-builtins.c
Removed:
################################################################################
diff --git a/clang/lib/CIR/CodeGen/CIRGenBuiltinX86.cpp b/clang/lib/CIR/CodeGen/CIRGenBuiltinX86.cpp
index 08f44c7d87091..ee6900141647f 100644
--- a/clang/lib/CIR/CodeGen/CIRGenBuiltinX86.cpp
+++ b/clang/lib/CIR/CodeGen/CIRGenBuiltinX86.cpp
@@ -169,26 +169,10 @@ mlir::Value CIRGenFunction::emitX86BuiltinExpr(unsigned builtinID,
case X86::BI__builtin_ia32_vec_set_v16hi:
case X86::BI__builtin_ia32_vec_set_v8si:
case X86::BI__builtin_ia32_vec_set_v4di:
- cgm.errorNYI(e->getSourceRange(),
- std::string("unimplemented X86 builtin call: ") +
- getContext().BuiltinInfo.getName(builtinID));
- return {};
case X86::BI_mm_setcsr:
- case X86::BI__builtin_ia32_ldmxcsr: {
- mlir::Location loc = getLoc(e->getExprLoc());
- Address tmp = createMemTemp(e->getArg(0)->getType(), loc);
- builder.createStore(loc, ops[0], tmp);
- return emitIntrinsicCallOp(*this, e, "x86.sse.ldmxcsr", builder.getVoidTy(),
- tmp.getPointer());
- }
+ case X86::BI__builtin_ia32_ldmxcsr:
case X86::BI_mm_getcsr:
- case X86::BI__builtin_ia32_stmxcsr: {
- mlir::Location loc = getLoc(e->getExprLoc());
- Address tmp = createMemTemp(e->getType(), loc);
- emitIntrinsicCallOp(*this, e, "x86.sse.stmxcsr", builder.getVoidTy(),
- tmp.getPointer());
- return builder.createLoad(loc, tmp);
- }
+ case X86::BI__builtin_ia32_stmxcsr:
case X86::BI__builtin_ia32_xsave:
case X86::BI__builtin_ia32_xsave64:
case X86::BI__builtin_ia32_xrstor:
diff --git a/clang/test/CIR/CodeGen/X86/sse-builtins.c b/clang/test/CIR/CodeGen/X86/sse-builtins.c
index 04e69a9990159..3a61018741958 100644
--- a/clang/test/CIR/CodeGen/X86/sse-builtins.c
+++ b/clang/test/CIR/CodeGen/X86/sse-builtins.c
@@ -16,35 +16,6 @@
#include <immintrin.h>
-void test_mm_setcsr(unsigned int A) {
- // CIR-LABEL: test_mm_setcsr
- // CIR: cir.store {{.*}}, {{.*}} : !u32i
- // CIR: cir.call_llvm_intrinsic "x86.sse.ldmxcsr" {{.*}} : (!cir.ptr<!u32i>) -> !void
-
- // LLVM-LABEL: test_mm_setcsr
- // LLVM: store i32
- // LLVM: call void @llvm.x86.sse.ldmxcsr(ptr {{.*}})
-
- // OGCG-LABEL: test_mm_setcsr
- // OGCG: store i32
- // OGCG: call void @llvm.x86.sse.ldmxcsr(ptr {{.*}})
- _mm_setcsr(A);
-}
-
-unsigned int test_mm_getcsr(void) {
- // CIR-LABEL: test_mm_getcsr
- // CIR: cir.call_llvm_intrinsic "x86.sse.stmxcsr" %{{.*}} : (!cir.ptr<!u32i>) -> !void
- // CIR: cir.load {{.*}} : !cir.ptr<!u32i>, !u32i
-
- // LLVM-LABEL: test_mm_getcsr
- // LLVM: call void @llvm.x86.sse.stmxcsr(ptr %{{.*}})
- // LLVM: load i32
-
- // OGCG-LABEL: test_mm_getcsr
- // OGCG: call void @llvm.x86.sse.stmxcsr(ptr %{{.*}})
- // OGCG: load i32
- return _mm_getcsr();
-}
void test_mm_sfence(void) {
// CIR-LABEL: test_mm_sfence
More information about the llvm-branch-commits
mailing list