From a9ac5994b1ec3b17639c755117c5c56fd40e3e8a Mon Sep 17 00:00:00 2001 From: Alex Bradbury Date: Wed, 3 Oct 2018 11:04:59 +0000 Subject: [PATCH] [RISCV] Gate simm32 materialisation pattern and SW pattern on IsRV32 These patterns are not correct for RV64. llvm-svn: 343677 --- llvm/lib/Target/RISCV/RISCVInstrInfo.td | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfo.td b/llvm/lib/Target/RISCV/RISCVInstrInfo.td index efbcd77..24665bd 100644 --- a/llvm/lib/Target/RISCV/RISCVInstrInfo.td +++ b/llvm/lib/Target/RISCV/RISCVInstrInfo.td @@ -625,7 +625,8 @@ def IsOrAdd: PatFrag<(ops node:$A, node:$B), (or node:$A, node:$B), [{ def : Pat<(simm12:$imm), (ADDI X0, simm12:$imm)>; def : Pat<(simm32hi20:$imm), (LUI (HI20 imm:$imm))>; -def : Pat<(simm32:$imm), (ADDI (LUI (HI20 imm:$imm)), (LO12Sext imm:$imm))>; +def : Pat<(simm32:$imm), (ADDI (LUI (HI20 imm:$imm)), (LO12Sext imm:$imm))>, + Requires<[IsRV32]>; /// Simple arithmetic operations @@ -808,7 +809,7 @@ multiclass StPat { defm : StPat; defm : StPat; -defm : StPat; +defm : StPat, Requires<[IsRV32]>; /// Fences -- 2.7.4