[SystemZ] Return true from preferZeroCompareBranch().

Review: Ulrich Weigand
Differential Revision: https://reviews.llvm.org/D103057
This commit is contained in:
Jonas Paulsson 2021-05-25 02:04:21 +02:00
parent 6a2ea84600
commit e77cb4ae63
2 changed files with 39 additions and 0 deletions

View File

@ -423,6 +423,7 @@ public:
return TargetLoweringBase::getPreferredVectorAction(VT);
}
bool isCheapToSpeculateCtlz() const override { return true; }
bool preferZeroCompareBranch() const override { return true; }
EVT getSetCCResultType(const DataLayout &DL, LLVMContext &,
EVT) const override;
bool isFMAFasterThanFMulAndFAdd(const MachineFunction &MF,

View File

@ -52,3 +52,41 @@ bb:
%tmp12 = select i1 %tmp10, i64 %tmp11, i64 %arg
ret i64 %tmp12
}
define i32 @optbranch_32(i32 %Arg) {
; CHECK-LABEL: optbranch_32:
; CHECK: alhsik %r2, %r2, 1
; CHECK-NEXT: bler %r14
; CHECK-NEXT: .LBB4_1:
; CHECK-NEXT: lhi %r2, -1
; CHECK-NEXT: br %r14
bb:
%i1 = icmp eq i32 %Arg, -1
br i1 %i1, label %bb2, label %bb3
bb2:
ret i32 -1
bb3:
%i4 = add nuw i32 %Arg, 1
ret i32 %i4
}
define i64 @optbranch_64(i64 %Arg) {
; CHECK-LABEL: optbranch_64:
; CHECK: alghsik %r2, %r2, 1
; CHECK-NEXT: bler %r14
; CHECK-NEXT: .LBB5_1:
; CHECK-NEXT: lghi %r2, -1
; CHECK-NEXT: br %r14
bb:
%i1 = icmp eq i64 %Arg, -1
br i1 %i1, label %bb2, label %bb3
bb2:
ret i64 -1
bb3:
%i4 = add nuw i64 %Arg, 1
ret i64 %i4
}