R600/SI: Prefer SALU instructions for bit shift operations
All shift operations will be selected as SALU instructions and then if necessary lowered to VALU instructions in the SIFixSGPRCopies pass. This allows us to do more operations on the SALU which will improve performance and is also required for implementing private memory using indirect addressing, since the private memory pointers must stay in the scalar registers. This patch includes some fixes from Matt Arsenault. llvm-svn: 194625
Showing
- llvm/lib/Target/R600/SIDefines.h 2 additions, 1 deletionllvm/lib/Target/R600/SIDefines.h
- llvm/lib/Target/R600/SIFixSGPRCopies.cpp 130 additions, 17 deletionsllvm/lib/Target/R600/SIFixSGPRCopies.cpp
- llvm/lib/Target/R600/SIInstrFormats.td 7 additions, 0 deletionsllvm/lib/Target/R600/SIInstrFormats.td
- llvm/lib/Target/R600/SIInstrInfo.cpp 263 additions, 4 deletionsllvm/lib/Target/R600/SIInstrInfo.cpp
- llvm/lib/Target/R600/SIInstrInfo.h 36 additions, 0 deletionsllvm/lib/Target/R600/SIInstrInfo.h
- llvm/lib/Target/R600/SIInstrInfo.td 5 additions, 0 deletionsllvm/lib/Target/R600/SIInstrInfo.td
- llvm/lib/Target/R600/SIInstructions.td 29 additions, 6 deletionsllvm/lib/Target/R600/SIInstructions.td
- llvm/lib/Target/R600/SIRegisterInfo.cpp 42 additions, 6 deletionsllvm/lib/Target/R600/SIRegisterInfo.cpp
- llvm/lib/Target/R600/SIRegisterInfo.h 14 additions, 1 deletionllvm/lib/Target/R600/SIRegisterInfo.h
- llvm/test/CodeGen/R600/fneg.ll 25 additions, 7 deletionsllvm/test/CodeGen/R600/fneg.ll
- llvm/test/CodeGen/R600/load.ll 81 additions, 81 deletionsllvm/test/CodeGen/R600/load.ll
- llvm/test/CodeGen/R600/lshl.ll 1 addition, 1 deletionllvm/test/CodeGen/R600/lshl.ll
- llvm/test/CodeGen/R600/lshr.ll 1 addition, 1 deletionllvm/test/CodeGen/R600/lshr.ll
- llvm/test/CodeGen/R600/mad_uint24.ll 6 additions, 6 deletionsllvm/test/CodeGen/R600/mad_uint24.ll
- llvm/test/CodeGen/R600/mul_uint24.ll 6 additions, 6 deletionsllvm/test/CodeGen/R600/mul_uint24.ll
- llvm/test/CodeGen/R600/sra.ll 6 additions, 6 deletionsllvm/test/CodeGen/R600/sra.ll
- llvm/test/CodeGen/R600/trunc.ll 2 additions, 1 deletionllvm/test/CodeGen/R600/trunc.ll
Loading
Please register or sign in to comment