[X86] Add vcmpsh/vcmpph to X86InstrInfo::commuteInstructionImpl.
authorCraig Topper <craig.topper@sifive.com>
Sun, 15 Aug 2021 18:35:20 +0000 (11:35 -0700)
committerCraig Topper <craig.topper@sifive.com>
Sun, 15 Aug 2021 18:36:13 +0000 (11:36 -0700)
They were already added to findCommuteOpIndices, but they also
need to be in X86InstrInfo::commuteInstructionImpl in order
to adjust the immediate control.

llvm/lib/Target/X86/X86InstrInfo.cpp
llvm/test/CodeGen/X86/select-of-half-constants.ll

index 38a18fd..ab5a341 100644 (file)
@@ -2241,6 +2241,10 @@ MachineInstr *X86InstrInfo::commuteInstructionImpl(MachineInstr &MI, bool NewMI,
   case X86::VCMPSSZrr:
   case X86::VCMPPDZrri:
   case X86::VCMPPSZrri:
+  case X86::VCMPSHZrr:
+  case X86::VCMPPHZrri:
+  case X86::VCMPPHZ128rri:
+  case X86::VCMPPHZ256rri:
   case X86::VCMPPDZ128rri:
   case X86::VCMPPSZ128rri:
   case X86::VCMPPDZ256rri:
index e2a2190..e74e083 100644 (file)
@@ -16,11 +16,10 @@ define half @fcmp_select_fp_constants_olt(half %x) nounwind readnone {
   ret half %r
 }
 
-; FIXME: This should be vcmpgtsh not vcmpltsh.
 define half @fcmp_select_fp_constants_ogt(half %x) nounwind readnone {
 ; X64-AVX512FP16-LABEL: fcmp_select_fp_constants_ogt:
 ; X64-AVX512FP16:       # %bb.0:
-; X64-AVX512FP16-NEXT:    vcmpltsh {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0, %k1
+; X64-AVX512FP16-NEXT:    vcmpgtsh {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0, %k1
 ; X64-AVX512FP16-NEXT:    vmovsh {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm1
 ; X64-AVX512FP16-NEXT:    vmovsh {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
 ; X64-AVX512FP16-NEXT:    vmovsh %xmm1, %xmm0, %xmm0 {%k1}