Skip to content

Commit 7cbbfc9

Browse files
Revert "[CIR] Upstream CIR codegen for mxcsr x86 builtins (#167948)"
This reverts commit f859427.
1 parent 12d7205 commit 7cbbfc9

File tree

2 files changed

+2
-47
lines changed

2 files changed

+2
-47
lines changed

clang/lib/CIR/CodeGen/CIRGenBuiltinX86.cpp

Lines changed: 2 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -169,26 +169,10 @@ mlir::Value CIRGenFunction::emitX86BuiltinExpr(unsigned builtinID,
169169
case X86::BI__builtin_ia32_vec_set_v16hi:
170170
case X86::BI__builtin_ia32_vec_set_v8si:
171171
case X86::BI__builtin_ia32_vec_set_v4di:
172-
cgm.errorNYI(e->getSourceRange(),
173-
std::string("unimplemented X86 builtin call: ") +
174-
getContext().BuiltinInfo.getName(builtinID));
175-
return {};
176172
case X86::BI_mm_setcsr:
177-
case X86::BI__builtin_ia32_ldmxcsr: {
178-
mlir::Location loc = getLoc(e->getExprLoc());
179-
Address tmp = createMemTemp(e->getArg(0)->getType(), loc);
180-
builder.createStore(loc, ops[0], tmp);
181-
return emitIntrinsicCallOp(*this, e, "x86.sse.ldmxcsr", builder.getVoidTy(),
182-
tmp.getPointer());
183-
}
173+
case X86::BI__builtin_ia32_ldmxcsr:
184174
case X86::BI_mm_getcsr:
185-
case X86::BI__builtin_ia32_stmxcsr: {
186-
mlir::Location loc = getLoc(e->getExprLoc());
187-
Address tmp = createMemTemp(e->getType(), loc);
188-
emitIntrinsicCallOp(*this, e, "x86.sse.stmxcsr", builder.getVoidTy(),
189-
tmp.getPointer());
190-
return builder.createLoad(loc, tmp);
191-
}
175+
case X86::BI__builtin_ia32_stmxcsr:
192176
case X86::BI__builtin_ia32_xsave:
193177
case X86::BI__builtin_ia32_xsave64:
194178
case X86::BI__builtin_ia32_xrstor:

clang/test/CIR/CodeGen/X86/sse-builtins.c

Lines changed: 0 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -16,35 +16,6 @@
1616

1717
#include <immintrin.h>
1818

19-
void test_mm_setcsr(unsigned int A) {
20-
// CIR-LABEL: test_mm_setcsr
21-
// CIR: cir.store {{.*}}, {{.*}} : !u32i
22-
// CIR: cir.call_llvm_intrinsic "x86.sse.ldmxcsr" {{.*}} : (!cir.ptr<!u32i>) -> !void
23-
24-
// LLVM-LABEL: test_mm_setcsr
25-
// LLVM: store i32
26-
// LLVM: call void @llvm.x86.sse.ldmxcsr(ptr {{.*}})
27-
28-
// OGCG-LABEL: test_mm_setcsr
29-
// OGCG: store i32
30-
// OGCG: call void @llvm.x86.sse.ldmxcsr(ptr {{.*}})
31-
_mm_setcsr(A);
32-
}
33-
34-
unsigned int test_mm_getcsr(void) {
35-
// CIR-LABEL: test_mm_getcsr
36-
// CIR: cir.call_llvm_intrinsic "x86.sse.stmxcsr" %{{.*}} : (!cir.ptr<!u32i>) -> !void
37-
// CIR: cir.load {{.*}} : !cir.ptr<!u32i>, !u32i
38-
39-
// LLVM-LABEL: test_mm_getcsr
40-
// LLVM: call void @llvm.x86.sse.stmxcsr(ptr %{{.*}})
41-
// LLVM: load i32
42-
43-
// OGCG-LABEL: test_mm_getcsr
44-
// OGCG: call void @llvm.x86.sse.stmxcsr(ptr %{{.*}})
45-
// OGCG: load i32
46-
return _mm_getcsr();
47-
}
4819

4920
void test_mm_sfence(void) {
5021
// CIR-LABEL: test_mm_sfence

0 commit comments

Comments
 (0)