[SPARC] Lower BR_CC to BPr on 64-bit target whenever possible
authorBrad Smith <brad@comstyle.com>
Wed, 26 Apr 2023 22:50:49 +0000 (18:50 -0400)
committerBrad Smith <brad@comstyle.com>
Wed, 26 Apr 2023 22:56:00 +0000 (18:56 -0400)
commitc30c29188770d2981a3dca826768319e1138b124
tree57d63dbccdb10500bdc41608edcd94ee646d465d
parent54e96f4f975ec05f44d998cd13032b1b55dad8ea
[SPARC] Lower BR_CC to BPr on 64-bit target whenever possible

On 64-bit target, when doing i64 BR_CC where one of the comparison operands is a
constant zero, try to fold the compare and BPcc into a BPr instruction.

For all integers, EQ and NE comparison are available, additionally for signed
integers, GT, GE, LT, and LE is also available.

Reviewed By: arsenm

Differential Revision: https://reviews.llvm.org/D142461
llvm/lib/Target/Sparc/MCTargetDesc/SparcInstPrinter.cpp
llvm/lib/Target/Sparc/SparcISelLowering.cpp
llvm/lib/Target/Sparc/SparcISelLowering.h
llvm/lib/Target/Sparc/SparcInstr64Bit.td
llvm/lib/Target/Sparc/SparcInstrAliases.td
llvm/lib/Target/Sparc/SparcInstrFormats.td
llvm/lib/Target/Sparc/SparcInstrInfo.cpp
llvm/lib/Target/Sparc/SparcInstrInfo.td
llvm/test/CodeGen/SPARC/branches-relax.ll
llvm/test/CodeGen/SPARC/branches-v9.ll
llvm/test/CodeGen/SPARC/missinglabel.ll