[clang] First draft: [Clang] Add constant evaluation support for x86 psadbw/p… (PR #169253)
Mohsen Rahmati via cfe-commits
cfe-commits at lists.llvm.org
Tue Mar 24 08:51:01 PDT 2026
================
@@ -170,24 +203,26 @@ let Features = "sse2", Attributes = [NoThrow] in {
def movnti : X86Builtin<"void(int *, int)">;
}
-let Features = "sse2", Attributes = [NoThrow, Const, Constexpr, RequiredVectorWidth<128>] in {
- def cvtpd2ps : X86Builtin<"_Vector<4, float>(_Vector<2, double>)">;
- def cvtsd2ss : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<2, double>)">;
-}
-let Features = "avx512f", Attributes = [NoThrow, Const, Constexpr, RequiredVectorWidth<128>] in {
- def cvtsd2ss_round_mask : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<2, double>, _Vector<4, float>, unsigned char, _Constant int)">;
-}
-
let Features = "sse2", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in {
- def psadbw128 : X86Builtin<"_Vector<2, long long int>(_Vector<16, char>, _Vector<16, char>)">;
+ def sqrtpd : X86Builtin<"_Vector<2, double>(_Vector<2, double>)">;
+ def sqrtsd : X86Builtin<"_Vector<2, double>(_Vector<2, double>)">;
def cvtpd2dq : X86Builtin<"_Vector<2, long long int>(_Vector<2, double>)">;
+ def cvtpd2ps : X86Builtin<"_Vector<4, float>(_Vector<2, double>)">;
def cvttpd2dq : X86Builtin<"_Vector<4, int>(_Vector<2, double>)">;
def cvtsd2si : X86Builtin<"int(_Vector<2, double>)">;
def cvttsd2si : X86Builtin<"int(_Vector<2, double>)">;
+ def cvtsd2ss : X86Builtin<"_Vector<4, float>(_Vector<4, float>, _Vector<2, double>)">;
def cvtps2dq : X86Builtin<"_Vector<4, int>(_Vector<4, float>)">;
def cvttps2dq : X86Builtin<"_Vector<4, int>(_Vector<4, float>)">;
}
+let Features = "sse2",
+ Attributes = [NoThrow, Const, Constexpr, RequiredVectorWidth<128>] in {
----------------
Mohxen wrote:
Hey Simon,
Thank you for your kind feedback. I will apply it ASAP.
https://github.com/llvm/llvm-project/pull/169253
More information about the cfe-commits
mailing list