llvm.org GIT mirror llvm / b34d837
Some single-precision VFP instructions can execute in either the VPF or Neon pipelines, at least on Cortex-A9. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129771 91177308-0d34-0410-b5e6-96231b3b80d8 Bob Wilson 9 years ago
1 changed file(s) with 24 addition(s) and 0 deletion(s). Raw diff Collapse all Expand all
446446
447447 let Inst{6-5} = 0b00;
448448 let Inst{3-0} = 0b0000;
449
450 // Some single precision VFP instructions may be executed on both NEON and VFP
451 // pipelines.
452 let D = VFPNeonDomain;
449453 }
450454
451455 def VMOVSR : AVConv4I<0b11100000, 0b1010,
463467
464468 let Inst{6-5} = 0b00;
465469 let Inst{3-0} = 0b0000;
470
471 // Some single precision VFP instructions may be executed on both NEON and VFP
472 // pipelines.
473 let D = VFPNeonDomain;
466474 }
467475
468476 let neverHasSideEffects = 1 in {
482490 let Inst{19-16} = Rt2;
483491
484492 let Inst{7-6} = 0b00;
493
494 // Some single precision VFP instructions may be executed on both NEON and VFP
495 // pipelines.
496 let D = VFPNeonDomain;
485497 }
486498
487499 def VMOVRRS : AVConv3I<0b11000101, 0b1010,
489501 IIC_fpMOVDI, "vmov", "\t$wb, $dst2, $src1, $src2",
490502 [/* For disassembly only; pattern left blank */]> {
491503 let Inst{7-6} = 0b00;
504
505 // Some single precision VFP instructions may be executed on both NEON and VFP
506 // pipelines.
507 let D = VFPNeonDomain;
492508 }
493509 } // neverHasSideEffects
494510
511527 let Inst{19-16} = Rt2;
512528
513529 let Inst{7-6} = 0b00;
530
531 // Some single precision VFP instructions may be executed on both NEON and VFP
532 // pipelines.
533 let D = VFPNeonDomain;
514534 }
515535
516536 let neverHasSideEffects = 1 in
519539 IIC_fpMOVID, "vmov", "\t$dst1, $dst2, $src1, $src2",
520540 [/* For disassembly only; pattern left blank */]> {
521541 let Inst{7-6} = 0b00;
542
543 // Some single precision VFP instructions may be executed on both NEON and VFP
544 // pipelines.
545 let D = VFPNeonDomain;
522546 }
523547
524548 // FMRDH: SPR -> GPR