llvm.org GIT mirror llvm / 4333665
[AArch64][Falkor] Fix sched details for FMOV git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303099 91177308-0d34-0410-b5e6-96231b3b80d8 Geoff Berry 3 years ago
2 changed file(s) with 6 addition(s) and 4 deletion(s). Raw diff Collapse all Expand all
429429
430430 // FP Miscellaneous Instructions
431431 // -----------------------------------------------------------------------------
432 def : InstRW<[FalkorWr_FMOV], (instregex "^FMOV(HW|HX|SW|DX|DXHigh)r$")>;
432 def : InstRW<[FalkorWr_FMOV], (instregex "^FMOV(H|S|D)i$")>;
433 def : InstRW<[FalkorWr_1GTOV_1cyc], (instregex "^FMOV(HW|HX|SW|DX|DXHigh)r$")>;
433434 def : InstRW<[FalkorWr_1VTOG_1cyc], (instregex "^FCVTZ(S|U)(S|U)(W|X)(D|S)ri?$")>;
434435 def : InstRW<[FalkorWr_1VTOG_1cyc], (instregex "^FMOV(WH|WS|XH|XD|XDHigh)r$")>;
435 def : InstRW<[FalkorWr_1VXVY_1cyc], (instregex "^FMOV(Hi|Hr|S0|Si|Sr|D0|Di|Dr|v.*_ns)$")>;
436 def : InstRW<[FalkorWr_1VXVY_1cyc], (instregex "^FMOV(Hr|Sr|Dr|v.*_ns)$")>;
437 // FIXME: We are currently generating movi v0.2d, #0 for these, which is worse than fmov 0.0
438 def : InstRW<[FalkorWr_2VXVY_1cyc], (instrs FMOVD0, FMOVS0)>;
436439
437440 def : InstRW<[FalkorWr_1GTOV_4cyc], (instregex "^(S|U)CVTF(S|U)(W|X)(D|S)ri$")>;
438441 def : InstRW<[FalkorWr_1VXVY_4cyc], (instregex "^(S|U)CVTF(v1i16|v1i32|v2i32|v1i64|v4i16|v2f32|v4f16|d|s)(_shift)?")>;
374374
375375 // SchedPredicates and WriteVariants for Immediate Zero and LSLFast
376376 // -----------------------------------------------------------------------------
377 def FalkorImmZPred : SchedPredicate<[{TII->isGPRZero(*MI)}]>;
377 def FalkorImmZPred : SchedPredicate<[{MI->getOperand(1).getImm() == 0}]>;
378378 def FalkorLSLFastPred : SchedPredicate<[{TII->isFalkorLSLFast(*MI)}]>;
379379
380380 def FalkorWr_FMOV : SchedWriteVariant<[
391391
392392 def FalkorWr_ADD : SchedWriteVariant<[
393393 SchedVar,
394 SchedVar,
395394 SchedVar]>;
396395
397396 def FalkorWr_PRFM : SchedWriteVariant<[