[PATCH] D135933: [X86] Add CMPCCXADD instructions.

Phoebe Wang via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Sun Oct 23 06:32:26 PDT 2022


pengfei added inline comments.


================
Comment at: clang/test/Driver/x86-target-features.c:313
 
+// RUN: %clang -target i686-unknown-linux-gnu -mcmpccxadd %s -### -o %t.o 2>&1 | FileCheck -check-prefix=CMPCCXADD %s
+// RUN: %clang -target i686-unknown-linux-gnu -mno-cmpccxadd %s -### -o %t.o 2>&1 | FileCheck -check-prefix=NO-CMPCCXADD %s
----------------
Use -target=xxx -march=xxx to match with others. xxx can be x86_64 I think.


================
Comment at: clang/test/Driver/x86-target-features.c:314
+// RUN: %clang -target i686-unknown-linux-gnu -mcmpccxadd %s -### -o %t.o 2>&1 | FileCheck -check-prefix=CMPCCXADD %s
+// RUN: %clang -target i686-unknown-linux-gnu -mno-cmpccxadd %s -### -o %t.o 2>&1 | FileCheck -check-prefix=NO-CMPCCXADD %s
+// CMPCCXADD: "-target-feature" "+cmpccxadd"
----------------
ditto.


================
Comment at: llvm/lib/Target/X86/MCTargetDesc/X86BaseInfo.h:1073
       // operand.
-      if (NumOps == 8 &&
+      if ((NumOps == 8) &&
           Desc.getOperandConstraint(6, MCOI::TIED_TO) == 0)
----------------
Unrelated change.


================
Comment at: llvm/lib/Target/X86/MCTargetDesc/X86BaseInfo.h:1127
     case X86II::MRMSrcMem4VOp3:
+    case X86II::MRMDestMem4VOp3CC:
       // Skip registers encoded in reg.
----------------
Maybe move it to line 1133? `MRMDestMem4VOp3CC` is used for VEX encoding only.


================
Comment at: llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp:816
+    VEX_R = ~(RegEnc >> 3) & 1;
+    EVEX_R2 = ~(RegEnc >> 4) & 1;
+
----------------
Also this is not needed.


================
Comment at: llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp:820
+    VEX_4V = ~VRegEnc & 0xf;
+    EVEX_V2 = ~(VRegEnc >> 4) & 1;
+    break;
----------------
ditto.


================
Comment at: llvm/lib/Target/X86/X86ISelLowering.cpp:34174
+  NODE_NAME_CASE(CMPCCXADD32)
+  NODE_NAME_CASE(CMPCCXADD64)
   NODE_NAME_CASE(TESTUI)
----------------
ditto.


================
Comment at: llvm/lib/Target/X86/X86ISelLowering.h:872
 
+    CMPCCXADD32,
+    CMPCCXADD64,
----------------
Add comments for them?


================
Comment at: llvm/lib/Target/X86/X86ISelLowering.h:873
+    CMPCCXADD32,
+    CMPCCXADD64,
+
----------------
This node seems not used.


================
Comment at: llvm/lib/Target/X86/X86InstrInfo.td:348
 
+def X86cmpccxadd : SDNode<"X86ISD::CMPCCXADD32", SDTX86Cmpccxadd,
+                          [SDNPHasChain, SDNPMayLoad, SDNPMayStore,
----------------
Change to `CMPCCXADD` since it's shared.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D135933/new/

https://reviews.llvm.org/D135933



More information about the cfe-commits mailing list