@@ -3169,9 +3169,9 @@ bool RISCVDAGToDAGISel::hasAllNBitUsers(SDNode *Node, unsigned Bits,
3169
3169
case RISCV::FCVT_D_WU:
3170
3170
case RISCV::TH_REVW:
3171
3171
case RISCV::TH_SRRIW:
3172
- if (Bits < 32 )
3173
- return false ;
3174
- break ;
3172
+ if (Bits >= 32 )
3173
+ break ;
3174
+ return false ;
3175
3175
case RISCV::SLL:
3176
3176
case RISCV::SRA:
3177
3177
case RISCV::SRL:
@@ -3181,14 +3181,14 @@ bool RISCVDAGToDAGISel::hasAllNBitUsers(SDNode *Node, unsigned Bits,
3181
3181
case RISCV::BCLR:
3182
3182
case RISCV::BINV:
3183
3183
// Shift amount operands only use log2(Xlen) bits.
3184
- if (UI.getOperandNo () != 1 || Bits < Log2_32 (Subtarget->getXLen ()))
3185
- return false ;
3186
- break ;
3184
+ if (UI.getOperandNo () == 1 && Bits >= Log2_32 (Subtarget->getXLen ()))
3185
+ break ;
3186
+ return false ;
3187
3187
case RISCV::SLLI:
3188
3188
// SLLI only uses the lower (XLen - ShAmt) bits.
3189
- if (Bits < Subtarget->getXLen () - User->getConstantOperandVal (1 ))
3190
- return false ;
3191
- break ;
3189
+ if (Bits >= Subtarget->getXLen () - User->getConstantOperandVal (1 ))
3190
+ break ;
3191
+ return false ;
3192
3192
case RISCV::ANDI:
3193
3193
if (Bits >= (unsigned )llvm::bit_width (User->getConstantOperandVal (1 )))
3194
3194
break ;
@@ -3224,42 +3224,42 @@ bool RISCVDAGToDAGISel::hasAllNBitUsers(SDNode *Node, unsigned Bits,
3224
3224
}
3225
3225
case RISCV::SEXT_B:
3226
3226
case RISCV::PACKH:
3227
- if (Bits < 8 )
3228
- return false ;
3229
- break ;
3227
+ if (Bits >= 8 )
3228
+ break ;
3229
+ return false ;
3230
3230
case RISCV::SEXT_H:
3231
3231
case RISCV::FMV_H_X:
3232
3232
case RISCV::ZEXT_H_RV32:
3233
3233
case RISCV::ZEXT_H_RV64:
3234
3234
case RISCV::PACKW:
3235
- if (Bits < 16 )
3236
- return false ;
3237
- break ;
3235
+ if (Bits >= 16 )
3236
+ break ;
3237
+ return false ;
3238
3238
case RISCV::PACK:
3239
- if (Bits < (Subtarget->getXLen () / 2 ))
3240
- return false ;
3241
- break ;
3239
+ if (Bits >= (Subtarget->getXLen () / 2 ))
3240
+ break ;
3241
+ return false ;
3242
3242
case RISCV::ADD_UW:
3243
3243
case RISCV::SH1ADD_UW:
3244
3244
case RISCV::SH2ADD_UW:
3245
3245
case RISCV::SH3ADD_UW:
3246
3246
// The first operand to add.uw/shXadd.uw is implicitly zero extended from
3247
3247
// 32 bits.
3248
- if (UI.getOperandNo () != 0 || Bits < 32 )
3249
- return false ;
3250
- break ;
3248
+ if (UI.getOperandNo () == 0 && Bits >= 32 )
3249
+ break ;
3250
+ return false ;
3251
3251
case RISCV::SB:
3252
- if (UI.getOperandNo () != 0 || Bits < 8 )
3253
- return false ;
3254
- break ;
3252
+ if (UI.getOperandNo () == 0 && Bits >= 8 )
3253
+ break ;
3254
+ return false ;
3255
3255
case RISCV::SH:
3256
- if (UI.getOperandNo () != 0 || Bits < 16 )
3257
- return false ;
3258
- break ;
3256
+ if (UI.getOperandNo () == 0 && Bits >= 16 )
3257
+ break ;
3258
+ return false ;
3259
3259
case RISCV::SW:
3260
- if (UI.getOperandNo () != 0 || Bits < 32 )
3261
- return false ;
3262
- break ;
3260
+ if (UI.getOperandNo () == 0 && Bits >= 32 )
3261
+ break ;
3262
+ return false ;
3263
3263
}
3264
3264
}
3265
3265
0 commit comments