[llvm] r336422 - Revert [AArch64] Armv8.4-A: Flag manipulation instructions

Sjoerd Meijer via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 6 01:39:44 PDT 2018


Author: sjoerdmeijer
Date: Fri Jul  6 01:39:43 2018
New Revision: 336422

URL: http://llvm.org/viewvc/llvm-project?rev=336422&view=rev
Log:
Revert [AArch64] Armv8.4-A: Flag manipulation instructions

It's causing build errors.

Removed:
    llvm/trunk/test/MC/AArch64/armv8.4a-flag-error.s
    llvm/trunk/test/MC/AArch64/armv8.4a-flag.s
    llvm/trunk/test/MC/Disassembler/AArch64/armv8.4a-flag.txt
Modified:
    llvm/trunk/lib/Target/AArch64/AArch64InstrFormats.td
    llvm/trunk/lib/Target/AArch64/AArch64InstrInfo.td

Modified: llvm/trunk/lib/Target/AArch64/AArch64InstrFormats.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/AArch64InstrFormats.td?rev=336422&r1=336421&r2=336422&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AArch64/AArch64InstrFormats.td (original)
+++ llvm/trunk/lib/Target/AArch64/AArch64InstrFormats.td Fri Jul  6 01:39:43 2018
@@ -1612,30 +1612,6 @@ class SignAuthTwoOperand<bits<4> opc, st
   let Inst{4-0}   = Rd;
 }
 
-// Base class for the Armv8.4-A 8 and 16-bit flag manipulation instructions
-class BaseFlagManipulation<bit sf, bit sz, dag iops, string asm, string ops>
-    : I<(outs), iops, asm, ops, "", []>,
-      Sched<[WriteI, ReadI, ReadI]> {
-  let Uses = [NZCV];
-  bits<5> Rn;
-  let Inst{31}    = sf;
-  let Inst{30-15} = 0b0111010000000000;
-  let Inst{14}    = sz;
-  let Inst{13-10} = 0b0010;
-  let Inst{9-5}   = Rn;
-  let Inst{4-0}   = 0b01101;
-}
-
-class FlagRotate<dag iops, string asm, string ops>
-    : BaseFlagManipulation<0b1, 0b0, iops, asm, ops> {
-  bits<6> imm;
-  bits<4> mask;
-  let Inst{20-15} = imm;
-  let Inst{13-10} = 0b0001;
-  let Inst{4}     = 0b0;
-  let Inst{3-0}   = mask;
-}
-
 //---
 // Basic two-operand data processing instructions.
 //---

Modified: llvm/trunk/lib/Target/AArch64/AArch64InstrInfo.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/AArch64InstrInfo.td?rev=336422&r1=336421&r2=336422&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AArch64/AArch64InstrInfo.td (original)
+++ llvm/trunk/lib/Target/AArch64/AArch64InstrInfo.td Fri Jul  6 01:39:43 2018
@@ -557,17 +557,6 @@ let Predicates = [HasV8_3a] in {
 
 } // HasV8_3A
 
-// v8.4 Flag manipulation instructions
-let Predicates = [HasV8_4a] in {
-def CFINV : SimpleSystemI<0, (ins), "cfinv", "">, Sched<[WriteSys]> {
-  let Inst{20-5} = 0b0000001000000000;
-}
-def SETF8  : BaseFlagManipulation<0, 0, (ins GPR32:$Rn), "setf8", "{\t$Rn}">;
-def SETF16 : BaseFlagManipulation<0, 1, (ins GPR32:$Rn), "setf16", "{\t$Rn}">;
-def RMIF   : FlagRotate<(ins GPR64:$Rn, uimm6:$imm, imm0_15:$mask), "rmif",
-                        "{\t$Rn, $imm, $mask}">;
-} // HasV8_4a
-
 def : InstAlias<"clrex", (CLREX 0xf)>;
 def : InstAlias<"isb", (ISB 0xf)>;
 

Removed: llvm/trunk/test/MC/AArch64/armv8.4a-flag-error.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/AArch64/armv8.4a-flag-error.s?rev=336421&view=auto
==============================================================================
--- llvm/trunk/test/MC/AArch64/armv8.4a-flag-error.s (original)
+++ llvm/trunk/test/MC/AArch64/armv8.4a-flag-error.s (removed)
@@ -1,27 +0,0 @@
-// RUN: not llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+v8.4a < %s 2>&1 | FileCheck %s --check-prefix=CHECK
-
-//------------------------------------------------------------------------------
-// Armv8.4-A flag manipulation instructions
-//------------------------------------------------------------------------------
-
-  rmif  x1, #64, #15
-  rmif  x1, #-1, #15
-  rmif  x1, #63, #16
-  rmif  x1, #63, #-1
-  rmif  sp, #63, #1
-
-//CHECK:      error: immediate must be an integer in range [0, 63].
-//CHECK-NEXT: rmif  x1, #64, #15
-//CHECK-NEXT:           ^
-//CHECK-NEXT: error: immediate must be an integer in range [0, 63].
-//CHECK-NEXT: rmif  x1, #-1, #15
-//CHECK-NEXT:           ^
-//CHECK-NEXT: error: immediate must be an integer in range [0, 15].
-//CHECK-NEXT: rmif  x1, #63, #16
-//CHECK-NEXT:                ^
-//CHECK-NEXT: error: immediate must be an integer in range [0, 15].
-//CHECK-NEXT: rmif  x1, #63, #-1
-//CHECK-NEXT:                ^
-//CHECK-NEXT: error: invalid operand for instruction
-//CHECK-NEXT: rmif  sp, #63, #1
-//CHECK-NEXT:       ^

Removed: llvm/trunk/test/MC/AArch64/armv8.4a-flag.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/AArch64/armv8.4a-flag.s?rev=336421&view=auto
==============================================================================
--- llvm/trunk/test/MC/AArch64/armv8.4a-flag.s (original)
+++ llvm/trunk/test/MC/AArch64/armv8.4a-flag.s (removed)
@@ -1,44 +0,0 @@
-// RUN: llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+v8.4a < %s | FileCheck %s --check-prefix=CHECK
-// RUN: not llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=-v8.4a < %s 2>&1 | FileCheck %s --check-prefix=CHECK-ERROR
-
-//------------------------------------------------------------------------------
-// Armv8.4-A flag manipulation instructions
-//------------------------------------------------------------------------------
-
-  cfinv
-  setf8 w1
-  setf8 wzr
-  setf16 w1
-  setf16 wzr
-  rmif x1, #63, #15
-  rmif xzr, #63, #15
-
-//CHECK:      cfinv                        // encoding: [0x1f,0x40,0x00,0xd5]
-//CHECK-NEXT: setf8 w1                     // encoding: [0x2d,0x08,0x00,0x3a]
-//CHECK-NEXT: setf8 wzr                    // encoding: [0xed,0x0b,0x00,0x3a]
-//CHECK-NEXT: setf16 w1                    // encoding: [0x2d,0x48,0x00,0x3a]
-//CHECK-NEXT: setf16 wzr                   // encoding: [0xed,0x4b,0x00,0x3a]
-//CHECK-NEXT: rmif x1, #63, #15            // encoding: [0x2f,0x84,0x1f,0xba]
-//CHECK-NEXT: rmif xzr, #63, #15           // encoding: [0xef,0x87,0x1f,0xba]
-
-//CHECK-ERROR:      error: instruction requires: armv8.4a
-//CHECK-ERROR-NEXT: cfinv
-//CHECK-ERROR-NEXT: ^
-//CHECK-ERROR-NEXT: error: instruction requires: armv8.4a
-//CHECK-ERROR-NEXT: setf8 w1
-//CHECK-ERROR-NEXT: ^
-//CHECK-ERROR-NEXT: error: instruction requires: armv8.4a
-//CHECK-ERROR-NEXT: setf8 wzr
-//CHECK-ERROR-NEXT: ^
-//CHECK-ERROR-NEXT: error: instruction requires: armv8.4a
-//CHECK-ERROR-NEXT: setf16 w1
-//CHECK-ERROR-NEXT: ^
-//CHECK-ERROR-NEXT: error: instruction requires: armv8.4a
-//CHECK-ERROR-NEXT: setf16 wzr
-//CHECK-ERROR-NEXT: ^
-//CHECK-ERROR-NEXT: error: instruction requires: armv8.4a
-//CHECK-ERROR-NEXT: rmif x1, #63, #15
-//CHECK-ERROR-NEXT: ^
-//CHECK-ERROR-NEXT: error: instruction requires: armv8.4a
-//CHECK-ERROR-NEXT: rmif xzr, #63, #15
-//CHECK-ERROR-NEXT: ^

Removed: llvm/trunk/test/MC/Disassembler/AArch64/armv8.4a-flag.txt
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/Disassembler/AArch64/armv8.4a-flag.txt?rev=336421&view=auto
==============================================================================
--- llvm/trunk/test/MC/Disassembler/AArch64/armv8.4a-flag.txt (original)
+++ llvm/trunk/test/MC/Disassembler/AArch64/armv8.4a-flag.txt (removed)
@@ -1,11 +0,0 @@
-# RUN: llvm-mc -triple aarch64-none-linux-gnu -mattr=+v8.4a --disassemble < %s | FileCheck %s
-
-[0x1f,0x40,0x00,0xd5]
-[0x2d,0x08,0x00,0x3a]
-[0x2d,0x48,0x00,0x3a]
-[0x2f,0x84,0x1f,0xba]
-
-#CHECK:  cfinv
-#CHECK:  setf8  w1
-#CHECK:  setf16  w1
-#CHECK:  rmif  x1, #63, #15




More information about the llvm-commits mailing list