================ @@ -4742,6 +4742,125 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_castsi128_pd(__m128i __a) { return (__m128d)__a; } +/// Compares each of the corresponding double-precision values of two +/// 128-bit vectors of [2 x double], using the operation specified by the +/// immediate integer operand. +/// +/// Returns a [2 x double] vector consisting of two doubles corresponding to +/// the two comparison results: zero if the comparison is false, and all 1's +/// if the comparison is true. +/// +/// \headerfile <x86intrin.h> +/// +/// \code +/// __m128d _mm_cmp_pd(__m128d a, __m128d b, const int c); +/// \endcode +/// +/// This intrinsic corresponds to the <c> VCMPPD </c> instruction. +/// +/// \param a +/// A 128-bit vector of [2 x double]. +/// \param b +/// A 128-bit vector of [2 x double]. +/// \param c +/// An immediate integer operand, with bits [4:0] specifying which comparison ---------------- FreddyLeaf wrote:
``` $ echo "cmpsd \$8, %xmm1, %xmm0" | llvm-mc --show-encoding cmpsd $8, %xmm1, %xmm0 # encoding: [0xf2,0x0f,0xc2,0xc1,0x08] $ echo "cmpsd \$0, %xmm1, %xmm0" | llvm-mc --show-encoding cmpeqsd %xmm1, %xmm0 # encoding: [0xf2,0x0f,0xc2,0xc1,0x00] ``` encoding won't omit higher bits for cmpsd, but maybe hardware will? https://github.com/llvm/llvm-project/pull/67410 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits