[clang] [llvm] [X86] EmitX86BuiltinExpr - attempt to convert SSE41/AVX1 roundps/d/ss/sd builtins to regular rounding modes (PR #171227)
Gergo Stomfai via llvm-commits
llvm-commits at lists.llvm.org
Mon Dec 22 03:09:59 PST 2025
================
@@ -840,6 +897,76 @@ Value *CodeGenFunction::EmitX86BuiltinExpr(unsigned BuiltinID,
Ops[0]);
return Builder.CreateExtractValue(Call, 0);
}
+ case X86::BI__builtin_ia32_roundps:
+ case X86::BI__builtin_ia32_roundpd:
+ case X86::BI__builtin_ia32_roundps256:
+ case X86::BI__builtin_ia32_roundpd256: {
+ unsigned M = cast<ConstantInt>(Ops[1])->getZExtValue();
+ unsigned MXCSRMask = 0b100;
+ unsigned FRoundNoExcMask = 0b1000;
+ unsigned UseMXCSR = MXCSRMask & M;
+ unsigned FRoundNoExc = FRoundNoExcMask & M;
+
+ if (UseMXCSR || FRoundNoExc) {
----------------
stomfaig wrote:
Sorry, stupid mistake, that is.
https://github.com/llvm/llvm-project/pull/171227
More information about the llvm-commits
mailing list