Lines Matching refs:Vector
10 /// for the standard 'V' (Vector) extension, version 1.0.
252 // Vector register and vector group type information.
257 ValueType Vector = Vec;
4608 vti.Vector, vti.Vector, vti.Mask,
4624 def : VPatUnaryNoMask<intrinsic, instruction, "M", vti.Vector, vti.Mask,
4626 def : VPatUnaryMask<intrinsic, instruction, "M", vti.Vector, vti.Mask,
4640 vti.Vector, fti.Vector,
4643 vti.Vector, fti.Vector, vti.Mask,
4654 vti.Vector, vti.Vector, vti.Log2SEW,
4657 vti.Vector, vti.Vector, vti.Mask, vti.Log2SEW,
4668 vti.Vector, vti.Vector, vti.Log2SEW,
4671 vti.Vector, vti.Vector, vti.Mask, vti.Log2SEW,
4680 def : Pat<(vti.Vector (!cast<Intrinsic>(intrinsic)
4681 (vti.Vector vti.RegClass:$merge),
4685 def : Pat<(vti.Vector (!cast<Intrinsic>(intrinsic # "_mask")
4686 (vti.Vector vti.RegClass:$merge),
4903 vti.Vector, vti.Vector, vti.Vector,vti.Mask,
4916 vti.Vector, vti.Vector, vti.Vector,vti.Mask,
4928 vti.Vector, vti.Vector, ivti.Vector, vti.Mask,
4948 vti.Vector, vti.Vector, ivti.Vector, vti.Mask,
4964 vti.Vector, vti.Vector, vti.Scalar, vti.Mask,
4979 vti.Vector, vti.Vector, vti.Scalar, vti.Mask,
4990 vti.Vector, vti.Vector, XLenVT, vti.Mask,
5000 vti.Vector, vti.Vector, XLenVT, vti.Mask,
5012 vti.Vector, vti.Vector, XLenVT, vti.Mask,
5033 Wti.Vector, Vti.Vector, Vti.Vector, Vti.Mask,
5050 Wti.Vector, Vti.Vector, Vti.Vector, Vti.Mask,
5065 Wti.Vector, Vti.Vector, Vti.Scalar, Vti.Mask,
5083 Wti.Vector, Vti.Vector, Vti.Scalar, Vti.Mask,
5097 Wti.Vector, Vti.Vector,
5100 Wti.Vector, Wti.Vector, Vti.Vector, Vti.Log2SEW,
5104 Wti.Vector, Vti.Vector,
5107 Wti.Vector, Vti.Vector, Vti.Mask,
5111 Wti.Vector, Wti.Vector, Vti.Vector, Vti.Mask,
5129 Wti.Vector, Vti.Vector,
5132 Wti.Vector, Wti.Vector, Vti.Vector, Vti.Log2SEW,
5136 Wti.Vector, Vti.Vector,
5139 Wti.Vector, Vti.Vector, Vti.Mask,
5143 Wti.Vector, Wti.Vector, Vti.Vector, Vti.Mask,
5159 Wti.Vector, Wti.Vector, Vti.Scalar, Vti.Mask,
5177 Wti.Vector, Wti.Vector, Vti.Scalar, Vti.Mask,
5191 Vti.Vector, Wti.Vector, Vti.Vector, Vti.Mask,
5206 Vti.Vector, Wti.Vector, Vti.Vector, Vti.Mask,
5221 Vti.Vector, Wti.Vector, Vti.Scalar, Vti.Mask,
5237 Vti.Vector, Wti.Vector, Vti.Scalar, Vti.Mask,
5252 Vti.Vector, Wti.Vector, XLenVT, Vti.Mask,
5267 Vti.Vector, Wti.Vector, XLenVT, Vti.Mask,
5279 !if(CarryOut, vti.Mask, vti.Vector),
5280 vti.Vector, vti.Vector, vti.Mask,
5292 !if(CarryOut, vti.Mask, vti.Vector),
5293 vti.Vector, vti.Scalar, vti.Mask,
5303 !if(CarryOut, vti.Mask, vti.Vector),
5304 vti.Vector, XLenVT, vti.Mask,
5313 vti.Vector,
5314 vti.Vector, vti.Vector, vti.Mask,
5324 vti.Vector,
5325 vti.Vector, vti.Scalar, vti.Mask,
5334 vti.Vector,
5335 vti.Vector, XLenVT, vti.Mask,
5344 vti.Mask, vti.Vector, vti.Vector,
5353 vti.Mask, vti.Vector, XLenVT,
5362 vti.Mask, vti.Vector, XLenVT,
5372 vti.Mask, vti.Vector, vti.Vector, vti.Mask,
5382 vti.Mask, vti.Vector, vti.Vector, vti.Mask,
5393 vti.Mask, vti.Vector, vti.Scalar, vti.Mask,
5404 vti.Mask, vti.Vector, XLenVT, vti.Mask,
5585 vti.Vector, vti.Vector, vti.Vector, vti.Mask,
5595 vti.Vector, vti.Vector, vti.Vector, vti.Mask,
5605 vti.Vector, vti.Vector, XLenVT, vti.Mask,
5616 vti.Vector, vti.Scalar, vti.Vector, vti.Mask,
5627 vti.Vector, vti.Scalar, vti.Vector, vti.Mask,
5637 vti.Vector, vti.Vector, XLenVT, vti.Mask,
5650 wti.Vector, vti.Vector, vti.Vector,
5664 wti.Vector, vti.Vector, vti.Vector,
5680 wti.Vector, vti.Scalar, vti.Vector,
5695 intrinsic, instruction, "V" #vti.ScalarSuffix, wti.Vector,
5696 vti.Scalar, vti.Vector, vti.Mask, vti.Log2SEW, vti.LMul,
5754 vectorM1.Vector, vti.Vector,
5755 vectorM1.Vector, vti.Mask,
5762 gvti.VectorM1, gvti.Vector,
5774 vectorM1.Vector, vti.Vector,
5775 vectorM1.Vector, vti.Mask,
5782 gvti.VectorM1, gvti.Vector,
5796 wtiM1.Vector, vti.Vector,
5797 wtiM1.Vector, vti.Mask,
5812 wtiM1.Vector, vti.Vector,
5813 wtiM1.Vector, vti.Mask,
5828 ivti.Vector, fvti.Vector, ivti.Mask, fvti.Log2SEW,
5840 ivti.Vector, fvti.Vector, ivti.Mask, fvti.Log2SEW,
5852 ivti.Vector, fvti.Vector, ivti.Mask, fvti.Log2SEW,
5864 fvti.Vector, ivti.Vector, fvti.Mask, ivti.Log2SEW,
5877 iwti.Vector, fvti.Vector, iwti.Mask, fvti.Log2SEW,
5889 iwti.Vector, fvti.Vector, iwti.Mask, fvti.Log2SEW,
5901 iwti.Vector, fvti.Vector, iwti.Mask, fvti.Log2SEW,
5914 fwti.Vector, vti.Vector, fwti.Mask, vti.Log2SEW,
5929 fwti.Vector, fvti.Vector, fwti.Mask, fvti.Log2SEW,
5943 fwti.Vector, fvti.Vector, fwti.Mask, fvti.Log2SEW,
5955 vti.Vector, fwti.Vector, vti.Mask, vti.Log2SEW,
5967 vti.Vector, fwti.Vector, vti.Mask, vti.Log2SEW,
5979 vti.Vector, fwti.Vector, vti.Mask, vti.Log2SEW,
5992 fvti.Vector, iwti.Vector, fvti.Mask, fvti.Log2SEW,
6006 fvti.Vector, fwti.Vector, fvti.Mask, fvti.Log2SEW,
6020 fvti.Vector, fwti.Vector, fvti.Mask, fvti.Log2SEW,
6035 fvti.Vector, fwti.Vector, fvti.Mask, fvti.Log2SEW,
6048 fvti.Vector, fwti.Vector, fvti.Mask, fvti.Log2SEW,
6060 def : Pat<(vti.Mask (Intr (vti.Vector vti.RegClass:$rs1),
6069 (vti.Vector vti.RegClass:$rs1),
6144 // 7. Vector Loads and Stores
6148 // 7.4 Vector Unit-Stride Instructions
6159 // 7.5 Vector Strided Instructions
6162 // Vector Strided Loads and Stores
6167 // 7.6 Vector Indexed Instructions
6170 // Vector Indexed Loads and Stores
6185 // 7.8. Vector Load/Store Segment Instructions
6202 // 11. Vector Integer Arithmetic Instructions
6206 // 11.1. Vector Single-Width Integer Add and Subtract
6218 def : Pat<(vti.Vector (int_riscv_vrsub (vti.Vector vti.RegClass:$merge),
6219 (vti.Vector vti.RegClass:$rs2),
6220 (vti.Vector vti.RegClass:$rs1),
6228 def : Pat<(vti.Vector (int_riscv_vrsub_mask (vti.Vector vti.RegClass:$merge),
6229 (vti.Vector vti.RegClass:$rs2),
6230 (vti.Vector vti.RegClass:$rs1),
6244 def : Pat<(vti.Vector (int_riscv_vsub (vti.Vector vti.RegClass:$merge),
6245 (vti.Vector vti.RegClass:$rs1),
6254 def : Pat<(vti.Vector (int_riscv_vsub_mask (vti.Vector vti.RegClass:$merge),
6255 (vti.Vector vti.RegClass:$rs1),
6272 // 11.2. Vector Widening Integer Add/Subtract
6284 // 11.3. Vector Integer Extension
6294 // 11.4. Vector Integer Add-with-Carry / Subtract-with-Borrow Instructions
6305 // 11.5. Vector Bitwise Logical Instructions
6312 // 11.6. Vector Single-Width Bit Shift Instructions
6319 // 11.7. Vector Narrowing Integer Right Shift Instructions
6325 // 11.8. Vector Integer Comparison Instructions
6337 // 11.9. Vector Integer Min/Max Instructions
6345 // 11.10. Vector Single-Width Integer Multiply Instructions
6353 // 11.11. Vector Integer Divide Instructions
6361 // 11.12. Vector Widening Integer Multiply Instructions
6368 // 11.13. Vector Single-Width Integer Multiply-Add Instructions
6376 // 11.14. Vector Widening Integer Multiply-Add Instructions
6384 // 11.15. Vector Integer Merge Instructions
6389 // 11.16. Vector Integer Move Instructions
6394 // 12. Vector Fixed-Point Arithmetic Instructions
6398 // 12.1. Vector Single-Width Saturating Add and Subtract
6408 // 12.2. Vector Single-Width Averaging Add and Subtract
6416 // 12.3. Vector Single-Width Fractional Multiply with Rounding and Saturation
6423 // 12.4. Vector Single-Width Scaling Shift Instructions
6429 // 12.5. Vector Narrowing Fixed-Point Clip Instructions
6439 // 13. Vector Floating-Point Instructions
6444 // 13.2. Vector Single-Width Floating-Point Add/Subtract Instructions
6453 // 13.3. Vector Widening Floating-Point Add/Subtract Instructions
6463 // 13.4. Vector Single-Width Floating-Point Multiply/Divide Instructions
6472 // 13.5. Vector Widening Floating-Point Multiply
6479 // 13.6. Vector Single-Width Floating-Point Fused Multiply-Add Instructions
6493 // 13.7. Vector Widening Floating-Point Fused Multiply-Add Instructions
6505 // 13.8. Vector Floating-Point Square-Root Instruction
6511 // 13.9. Vector Floating-Point Reciprocal Square-Root Estimate Instruction
6517 // 13.10. Vector Floating-Point Reciprocal Estimate Instruction
6523 // 13.11. Vector Floating-Point Min/Max Instructions
6531 // 13.12. Vector Floating-Point Sign-Injection Instructions
6538 // 13.13. Vector Floating-Point Compare Instructions
6550 // 13.14. Vector Floating-Point Classify Instruction
6555 // 13.15. Vector Floating-Point Merge Instruction
6560 // 13.16. Vector Floating-Point Move Instruction
6640 // 14. Vector Reduction Operations
6645 // 14.1. Vector Single-Width Integer Reduction Instructions
6657 // 14.2. Vector Widening Integer Reduction Instructions
6667 // 14.3. Vector Single-Width Floating-Point Reduction Instructions
6679 // 14.4. Vector Widening Floating-Point Reduction Instructions
6690 // 15. Vector Mask Instructions
6695 // 15.1 Vector Mask-Register Logical Instructions
6712 // 15.2. Vector mask population count vcpop
6740 // 15.8. Vector Iota Instruction
6745 // 15.9. Vector Element Index Instruction
6752 // 16. Vector Permutation Instructions
6808 // 16.3. Vector Slide Instructions
6823 // 16.4. Vector Register Gather Instructions
6830 // 16.5. Vector Compress Instruction
6840 // 11. Vector Integer Arithmetic Instructions
6844 // 11.1. Vector Single-Width Integer Add and Subtract
6851 // 11.2. Vector Widening Integer Add/Subtract
6863 // 11.3. Vector Integer Extension
6879 // 11.4. Vector Integer Add-with-Carry / Subtract-with-Borrow Instructions
6890 // 11.5. Vector Bitwise Logical Instructions
6897 // 11.6. Vector Single-Width Bit Shift Instructions
6909 def : Pat<(vti.Vector (int_riscv_vsll (vti.Vector vti.RegClass:$merge),
6910 (vti.Vector vti.RegClass:$rs1),
6915 def : Pat<(vti.Vector (int_riscv_vsll_mask (vti.Vector vti.RegClass:$merge),
6916 (vti.Vector vti.RegClass:$rs1),
6933 // 11.7. Vector Narrowing Integer Right Shift Instructions
6939 // 11.8. Vector Integer Comparison Instructions
6970 // 11.9. Vector Integer Min/Max Instructions
6978 // 11.10. Vector Single-Width Integer Multiply Instructions
7003 // 11.11. Vector Integer Divide Instructions
7011 // 11.12. Vector Widening Integer Multiply Instructions
7018 // 11.13. Vector Single-Width Integer Multiply-Add Instructions
7026 // 11.14. Vector Widening Integer Multiply-Add Instructions
7034 // 11.15. Vector Integer Merge Instructions
7039 // 11.16. Vector Integer Move Instructions
7043 def : Pat<(vti.Vector (int_riscv_vmv_v_v (vti.Vector vti.RegClass:$passthru),
7044 (vti.Vector vti.RegClass:$rs1),
7054 // 12. Vector Fixed-Point Arithmetic Instructions
7058 // 12.1. Vector Single-Width Saturating Add and Subtract
7066 // 12.2. Vector Single-Width Averaging Add and Subtract
7078 // 12.3. Vector Single-Width Fractional Multiply with Rounding and Saturation
7088 // 12.4. Vector Single-Width Scaling Shift Instructions
7096 // 12.5. Vector Narrowing Fixed-Point Clip Instructions
7104 // 13. Vector Floating-Point Instructions
7108 // 13.2. Vector Single-Width Floating-Point Add/Subtract Instructions
7118 // 13.3. Vector Widening Floating-Point Add/Subtract Instructions
7130 // 13.4. Vector Single-Width Floating-Point Multiply/Divide Instructions
7140 // 13.5. Vector Widening Floating-Point Multiply
7146 // 13.6. Vector Single-Width Floating-Point Fused Multiply-Add Instructions
7166 // 13.7. Vector Widening Floating-Point Fused Multiply-Add Instructions
7181 // 13.8. Vector Floating-Point Square-Root Instruction
7186 // 13.9. Vector Floating-Point Reciprocal Square-Root Estimate Instruction
7191 // 13.10. Vector Floating-Point Reciprocal Estimate Instruction
7196 // 13.11. Vector Floating-Point Min/Max Instructions
7204 // 13.12. Vector Floating-Point Sign-Injection Instructions
7214 // 13.13. Vector Floating-Point Compare Instructions
7226 // 13.14. Vector Floating-Point Classify Instruction
7231 // 13.15. Vector Floating-Point Merge Instruction
7239 vti.Vector,
7240 vti.Vector, vti.Vector, vti.Mask,
7244 vti.Vector,
7245 vti.Vector, vti.Vector, vti.Mask,
7250 vti.Vector,
7251 vti.Vector, vti.Scalar, vti.Mask,
7260 def : Pat<(fvti.Vector (int_riscv_vfmerge (fvti.Vector fvti.RegClass:$merge),
7261 (fvti.Vector fvti.RegClass:$rs2),
7329 // 14. Vector Reduction Operations
7333 // 14.1. Vector Single-Width Integer Reduction Instructions
7345 // 14.2. Vector Widening Integer Reduction Instructions
7351 // 14.3. Vector Single-Width Floating-Point Reduction Instructions
7359 // 14.4. Vector Widening Floating-Point Reduction Instructions
7365 // 15. Vector Mask Instructions
7369 // 15.1 Vector Mask-Register Logical Instructions
7385 // 15.2. Vector count population in mask vcpop.m
7410 // 15.8. Vector Iota Instruction
7415 // 15.9. Vector Element Index Instruction
7421 // 16. Vector Permutation Instructions
7430 def : Pat<(XLenVT (riscv_vmv_x_s (vti.Vector vti.RegClass:$rs2))),
7436 // 16.3. Vector Slide Instructions
7449 // 16.4. Vector Register Gather Instructions
7461 // 16.5. Vector Compress Instruction