Skip to content

Commit f2a75ee

Browse files
committed
Revert "[PowerPC] Fix assert from machine verify pass that unmatched register class about fcmp selection in fast-isel"
This reverts commit r350685. See compile assert in compiler-rt. llvm-svn: 350693
1 parent 7b03b66 commit f2a75ee

File tree

3 files changed

+22
-29
lines changed

3 files changed

+22
-29
lines changed

llvm/lib/Target/PowerPC/PPCFastISel.cpp

Lines changed: 13 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -861,20 +861,8 @@ bool PPCFastISel::PPCEmitCmp(const Value *SrcValue1, const Value *SrcValue2,
861861
}
862862
}
863863

864-
unsigned SrcReg1 = getRegForValue(SrcValue1);
865-
if (SrcReg1 == 0)
866-
return false;
867-
868-
unsigned SrcReg2 = 0;
869-
if (!UseImm) {
870-
SrcReg2 = getRegForValue(SrcValue2);
871-
if (SrcReg2 == 0)
872-
return false;
873-
}
874-
875864
unsigned CmpOpc;
876865
bool NeedsExt = false;
877-
auto RC = MRI.getRegClass(SrcReg1);
878866
switch (SrcVT.SimpleTy) {
879867
default: return false;
880868
case MVT::f32:
@@ -891,11 +879,8 @@ bool PPCFastISel::PPCEmitCmp(const Value *SrcValue1, const Value *SrcValue2,
891879
CmpOpc = PPC::EFSCMPGT;
892880
break;
893881
}
894-
} else if (isVSSRCRegClass(RC)) {
895-
llvm_unreachable("Unsupposed f32 VSX comparison");
896-
} else {
882+
} else
897883
CmpOpc = PPC::FCMPUS;
898-
}
899884
break;
900885
case MVT::f64:
901886
if (HasSPE) {
@@ -911,11 +896,8 @@ bool PPCFastISel::PPCEmitCmp(const Value *SrcValue1, const Value *SrcValue2,
911896
CmpOpc = PPC::EFDCMPGT;
912897
break;
913898
}
914-
} else if (isVSFRCRegClass(RC)) {
915-
CmpOpc = PPC::XSCMPUDP;
916-
} else {
899+
} else
917900
CmpOpc = PPC::FCMPUD;
918-
}
919901
break;
920902
case MVT::i1:
921903
case MVT::i8:
@@ -936,6 +918,17 @@ bool PPCFastISel::PPCEmitCmp(const Value *SrcValue1, const Value *SrcValue2,
936918
break;
937919
}
938920

921+
unsigned SrcReg1 = getRegForValue(SrcValue1);
922+
if (SrcReg1 == 0)
923+
return false;
924+
925+
unsigned SrcReg2 = 0;
926+
if (!UseImm) {
927+
SrcReg2 = getRegForValue(SrcValue2);
928+
if (SrcReg2 == 0)
929+
return false;
930+
}
931+
939932
if (NeedsExt) {
940933
unsigned ExtReg = createResultReg(&PPC::GPRCRegClass);
941934
if (!PPCEmitIntExt(SrcVT, SrcReg1, MVT::i32, ExtReg, IsZExt))

llvm/test/CodeGen/PowerPC/fast-isel-fcmp-nan.ll

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
; RUN: llc -verify-machineinstrs -mtriple powerpc64le-unknown-linux-gnu -fast-isel -O0 < %s | FileCheck %s
1+
; RUN: llc -mtriple powerpc64le-unknown-linux-gnu -fast-isel -O0 < %s | FileCheck %s
22

33
define i1 @TestULT(double %t0) {
44
; CHECK-LABEL: TestULT:
@@ -17,7 +17,7 @@ good:
1717

1818
define i1 @TestULE(double %t0) {
1919
; CHECK-LABEL: TestULE:
20-
; CHECK: xscmpudp
20+
; CHECK: fcmpu
2121
; CHECK-NEXT: ble
2222
; CHECK: blr
2323
entry:
@@ -33,7 +33,7 @@ good:
3333

3434
define i1 @TestUNE(double %t0) {
3535
; CHECK-LABEL: TestUNE:
36-
; CHECK: xscmpudp
36+
; CHECK: fcmpu
3737
; CHECK-NEXT: bne
3838
; CHECK: blr
3939
entry:
@@ -79,7 +79,7 @@ good:
7979

8080
define i1 @TestUGE(double %t0) {
8181
; CHECK-LABEL: TestUGE:
82-
; CHECK: xscmpudp
82+
; CHECK: fcmpu
8383
; CHECK-NEXT: bge
8484
; CHECK: blr
8585
entry:
@@ -95,7 +95,7 @@ good:
9595

9696
define i1 @TestOLT(double %t0) {
9797
; CHECK-LABEL: TestOLT:
98-
; CHECK: xscmpudp
98+
; CHECK: fcmpu
9999
; CHECK-NEXT: blt
100100
; CHECK: blr
101101
entry:
@@ -141,7 +141,7 @@ good:
141141

142142
define i1 @TestOEQ(double %t0) {
143143
; CHECK-LABEL: TestOEQ:
144-
; CHECK: xscmpudp
144+
; CHECK: fcmpu
145145
; CHECK-NEXT: beq
146146
; CHECK: blr
147147
entry:
@@ -157,7 +157,7 @@ good:
157157

158158
define i1 @TestOGT(double %t0) {
159159
; CHECK-LABEL: TestOGT:
160-
; CHECK: xscmpudp
160+
; CHECK: fcmpu
161161
; CHECK-NEXT: bgt
162162
; CHECK: blr
163163
entry:

llvm/test/CodeGen/PowerPC/vsx-self-copy.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
; RUN: llc -mcpu=pwr7 -mattr=+vsx < %s -verify-machineinstrs | FileCheck %s
2-
; RUN: llc -mcpu=pwr7 -mattr=+vsx -fast-isel -O0 < %s -verify-machineinstrs | FileCheck %s
1+
; RUN: llc -mcpu=pwr7 -mattr=+vsx < %s | FileCheck %s
2+
; RUN: llc -mcpu=pwr7 -mattr=+vsx -fast-isel -O0 < %s | FileCheck %s
33
target datalayout = "E-m:e-i64:64-n32:64"
44
target triple = "powerpc64-unknown-linux-gnu"
55

0 commit comments

Comments
 (0)