Skip to content

Commit

Permalink
vfalu: Use oldVd as input to mgu in last Uop for vfred inst (#3056)
Browse files Browse the repository at this point in the history
  • Loading branch information
sinceforYy committed Jun 13, 2024
1 parent dd46182 commit b51d5c3
Showing 1 changed file with 2 additions and 1 deletion.
3 changes: 2 additions & 1 deletion src/main/scala/xiangshan/backend/fu/wrapper/VFALU.scala
Original file line number Diff line number Diff line change
Expand Up @@ -421,7 +421,8 @@ class VFAlu(cfg: FuConfig)(implicit p: Parameters) extends VecPipedFuncUnit(cfg)
val vlMax = Mux(outVecCtrl.vlmul(2), uvlMax >> (-outVecCtrl.vlmul)(1, 0), uvlMax << outVecCtrl.vlmul(1, 0)).asUInt
vlMax
}
val isOutOldVdForREDO = (outCtrl.fuOpType === VfaluType.vfredosum && outIsFold) || outCtrl.fuOpType === VfaluType.vfwredosum
val isLastUopForREDO = outVecCtrl.lastUop
val isOutOldVdForREDO = ((outCtrl.fuOpType === VfaluType.vfredosum && outIsFold) || outCtrl.fuOpType === VfaluType.vfwredosum) && !isLastUopForREDO
val taIsFalseForVFREDO = ((outCtrl.fuOpType === VfaluType.vfredosum) || (outCtrl.fuOpType === VfaluType.vfwredosum)) && (outVecCtrl.vuopIdx =/= numOfUopVFREDOSUM - 1.U)
// outVecCtrl.fpu.isFpToVecInst means the instruction is float instruction, not vector float instruction
val notUseVl = outVecCtrl.fpu.isFpToVecInst || (outCtrl.fuOpType === VfaluType.vfmv_f_s)
Expand Down

0 comments on commit b51d5c3

Please sign in to comment.