Skip to content

Commit 712fdfd

Browse files
Apply suggested changes
1 parent 65ec4ba commit 712fdfd

File tree

2 files changed

+18
-14
lines changed

2 files changed

+18
-14
lines changed

clang/lib/CIR/CodeGen/CIRGenBuiltinX86.cpp

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -140,23 +140,19 @@ mlir::Value CIRGenFunction::emitX86BuiltinExpr(unsigned builtinID,
140140
return {};
141141
case X86::BI_mm_setcsr:
142142
case X86::BI__builtin_ia32_ldmxcsr: {
143-
Address tmp =
144-
createMemTemp(e->getArg(0)->getType(), getLoc(e->getExprLoc()));
145-
builder.createStore(getLoc(e->getExprLoc()), ops[0], tmp);
146-
return cir::LLVMIntrinsicCallOp::create(
147-
builder, getLoc(e->getExprLoc()),
148-
builder.getStringAttr("x86.sse.ldmxcsr"), builder.getVoidTy(),
149-
tmp.getPointer())
150-
.getResult();
143+
mlir::Location loc = getLoc(e->getExprLoc());
144+
Address tmp = createMemTemp(e->getArg(0)->getType(), loc);
145+
builder.createStore(loc, ops[0], tmp);
146+
return emitIntrinsicCallOp(*this, e, "x86.sse.ldmxcsr", builder.getVoidTy(),
147+
tmp.getPointer());
151148
}
152149
case X86::BI_mm_getcsr:
153150
case X86::BI__builtin_ia32_stmxcsr: {
154-
Address tmp = createMemTemp(e->getType(), getLoc(e->getExprLoc()));
155-
cir::LLVMIntrinsicCallOp::create(builder, getLoc(e->getExprLoc()),
156-
builder.getStringAttr("x86.sse.stmxcsr"),
157-
builder.getVoidTy(), tmp.getPointer())
158-
.getResult();
159-
return builder.createLoad(getLoc(e->getExprLoc()), tmp);
151+
mlir::Location loc = getLoc(e->getExprLoc());
152+
Address tmp = createMemTemp(e->getType(), loc);
153+
emitIntrinsicCallOp(*this, e, "x86.sse.stmxcsr", builder.getVoidTy(),
154+
tmp.getPointer());
155+
return builder.createLoad(loc, tmp);
160156
}
161157
case X86::BI__builtin_ia32_xsave:
162158
case X86::BI__builtin_ia32_xsave64:

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,10 @@ void test_mm_setcsr(unsigned int A) {
2424
// LLVM-LABEL: test_mm_setcsr
2525
// LLVM: store i32
2626
// 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 {{.*}})
2731
_mm_setcsr(A);
2832
}
2933

@@ -35,6 +39,10 @@ unsigned int test_mm_getcsr(void) {
3539
// LLVM-LABEL: test_mm_getcsr
3640
// LLVM: call void @llvm.x86.sse.stmxcsr(ptr %{{.*}})
3741
// LLVM: load i32
42+
43+
// OGCG-LABEL: test_mm_getcsr
44+
// OGCG: call void @llvm.x86.sse.stmxcsr(ptr %{{.*}})
45+
// OGCG: load i32
3846
return _mm_getcsr();
3947
}
4048

0 commit comments

Comments
 (0)