[llvm] e016fe8 - Revert "[GlobalIsel][X86] Legalize G_BSWAP"

Bjorn Pettersson via llvm-commits llvm-commits at lists.llvm.org
Tue May 16 07:40:29 PDT 2023


Author: Bjorn Pettersson
Date: 2023-05-16T16:40:16+02:00
New Revision: e016fe817c8e4774c3996314b9519f8d856cc616

URL: https://github.com/llvm/llvm-project/commit/e016fe817c8e4774c3996314b9519f8d856cc616
DIFF: https://github.com/llvm/llvm-project/commit/e016fe817c8e4774c3996314b9519f8d856cc616.diff

LOG: Revert "[GlobalIsel][X86] Legalize G_BSWAP"

This reverts commit 5cafecf9f952818400fa32645695e79838f1bc2c.

Buildbots are not happy with the patch.

Lots of crashes and assertion failures such as

  llvm::LegalizeRuleSet &llvm::LegalizerInfo::getActionDefinitionsBuilder(
  std::initializer_list<unsigned int>): Assertion `Opcodes.size() >= 2 &&
  "Initializer list must have at least two opcodes"' failed.

Added: 
    

Modified: 
    llvm/lib/Target/X86/X86LegalizerInfo.cpp

Removed: 
    llvm/test/CodeGen/X86/GlobalISel/legalize-bswap.mir


################################################################################
diff  --git a/llvm/lib/Target/X86/X86LegalizerInfo.cpp b/llvm/lib/Target/X86/X86LegalizerInfo.cpp
index da24eb0f7971..dbe939709ff3 100644
--- a/llvm/lib/Target/X86/X86LegalizerInfo.cpp
+++ b/llvm/lib/Target/X86/X86LegalizerInfo.cpp
@@ -286,12 +286,6 @@ void X86LegalizerInfo::setLegalizerInfo64bit() {
                        LegacyLegalizeActions::Legal);
   LegacyInfo.setAction({G_MERGE_VALUES, 1, s128}, LegacyLegalizeActions::Legal);
   LegacyInfo.setAction({G_UNMERGE_VALUES, s128}, LegacyLegalizeActions::Legal);
-
-  getActionDefinitionsBuilder({G_BSWAP})
-    .legalFor({s32, s64})
-    .widenScalarToNextPow2(1, /*Min=*/32)
-    .clampScalar(0, s32, s64);
-
 }
 
 void X86LegalizerInfo::setLegalizerInfoSSE1() {

diff  --git a/llvm/test/CodeGen/X86/GlobalISel/legalize-bswap.mir b/llvm/test/CodeGen/X86/GlobalISel/legalize-bswap.mir
deleted file mode 100644
index f9e5a18fc315..000000000000
--- a/llvm/test/CodeGen/X86/GlobalISel/legalize-bswap.mir
+++ /dev/null
@@ -1,113 +0,0 @@
-# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 2
-# RUN: llc -mtriple=x86_64-linux-gnu -run-pass=legalizer %s -o - | FileCheck %s
-
-# test BSWAP s32 and s64
-
----
-name:            test_bswap_s96
-alignment:       16
-legalized:       false
-regBankSelected: false
-registers:
-  - { id: 0, class: _, preferred-register: '' }
-  - { id: 1, class: _, preferred-register: '' }
-liveins:
-fixedStack:
-stack:
-constants:
-body:             |
-  bb.1:
-    ; CHECK-LABEL: name: test_bswap_s96
-    ; CHECK: [[DEF:%[0-9]+]]:_(s96) = IMPLICIT_DEF
-    ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[DEF]](s96)
-    ; CHECK-NEXT: [[BSWAP:%[0-9]+]]:_(s32) = G_BSWAP [[ANYEXT]]
-    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s8) = G_CONSTANT i8 -64
-    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[BSWAP]], [[C]](s8)
-    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s96) = G_TRUNC [[LSHR]](s32)
-    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s96) = COPY [[TRUNC]](s96)
-    ; CHECK-NEXT: RET 0, implicit [[COPY]](s96)
-    %0:_(s96) = IMPLICIT_DEF
-    %1:_(s96) = G_BSWAP %0
-    %2:_(s96) = COPY %1(s96)
-    RET 0, implicit %2
-
-...
----
-name:            test_bswaps64
-alignment:       16
-legalized:       false
-regBankSelected: false
-registers:
-  - { id: 0, class: _, preferred-register: '' }
-  - { id: 1, class: _, preferred-register: '' }
-liveins:
-fixedStack:
-stack:
-constants:
-body:             |
-  bb.1:
-    ; CHECK-LABEL: name: test_bswaps64
-    ; CHECK: [[DEF:%[0-9]+]]:_(s64) = IMPLICIT_DEF
-    ; CHECK-NEXT: [[BSWAP:%[0-9]+]]:_(s64) = G_BSWAP [[DEF]]
-    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY [[BSWAP]](s64)
-    ; CHECK-NEXT: RET 0, implicit [[COPY]](s64)
-    %0:_(s64) = IMPLICIT_DEF
-    %1:_(s64) = G_BSWAP %0
-    %2:_(s64) = COPY %1(s64)
-    RET 0, implicit %2
-
-...
----
-name:            test_bswap_s32
-alignment:       16
-legalized:       false
-regBankSelected: false
-registers:
-  - { id: 0, class: _, preferred-register: '' }
-  - { id: 1, class: _, preferred-register: '' }
-liveins:
-fixedStack:
-stack:
-constants:
-body:             |
-  bb.1:
-    ; CHECK-LABEL: name: test_bswap_s32
-    ; CHECK: [[DEF:%[0-9]+]]:_(s32) = IMPLICIT_DEF
-    ; CHECK-NEXT: [[BSWAP:%[0-9]+]]:_(s32) = G_BSWAP [[DEF]]
-    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY [[BSWAP]](s32)
-    ; CHECK-NEXT: RET 0, implicit [[COPY]](s32)
-    %0:_(s32) = IMPLICIT_DEF
-    %1:_(s32) = G_BSWAP %0
-    %2:_(s32) = COPY %1(s32)
-    RET 0, implicit %2
-
-...
----
-name:            test_bswap_s16
-alignment:       16
-legalized:       false
-regBankSelected: false
-registers:
-  - { id: 0, class: _, preferred-register: '' }
-  - { id: 1, class: _, preferred-register: '' }
-liveins:
-fixedStack:
-stack:
-constants:
-body:             |
-  bb.1:
-    ; CHECK-LABEL: name: test_bswap_s16
-    ; CHECK: [[DEF:%[0-9]+]]:_(s16) = IMPLICIT_DEF
-    ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[DEF]](s16)
-    ; CHECK-NEXT: [[BSWAP:%[0-9]+]]:_(s32) = G_BSWAP [[ANYEXT]]
-    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s8) = G_CONSTANT i8 16
-    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[BSWAP]], [[C]](s8)
-    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LSHR]](s32)
-    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY [[TRUNC]](s16)
-    ; CHECK-NEXT: RET 0, implicit [[COPY]](s16)
-    %0:_(s16) = IMPLICIT_DEF
-    %1:_(s16) = G_BSWAP %0
-    %2:_(s16) = COPY %1(s16)
-    RET 0, implicit %2
-
-...


        


More information about the llvm-commits mailing list