Lines Matching refs:VR128
46 : Pat<(i32 (z_vector_extract (type VR128:$vec), shift12only:$index)),
47 (EXTRACT_SUBREG (insn VR128:$vec, shift12only:$index), subreg_l32)>;
168 def : Pat<(z_vlef32 (v4f32 VR128:$val), bdxaddr12only:$addr, imm32zx2:$index),
169 (VLEF VR128:$val, bdxaddr12only:$addr, imm32zx2:$index)>;
170 def : Pat<(z_vlef64 (v2f64 VR128:$val), bdxaddr12only:$addr, imm32zx1:$index),
171 (VLEG VR128:$val, bdxaddr12only:$addr, imm32zx1:$index)>;
227 def : Pat<(z_vstef32 (v4f32 VR128:$val), bdxaddr12only:$addr,
229 (VSTEF VR128:$val, bdxaddr12only:$addr, imm32zx2:$index)>;
230 def : Pat<(z_vstef64 (v2f64 VR128:$val), bdxaddr12only:$addr,
232 (VSTEG VR128:$val, bdxaddr12only:$addr, imm32zx1:$index)>;
255 def : Pat<(int_s390_vstrl VR128:$val, imm32zx4:$len, bdaddr12only:$addr),
256 (VSTRL VR128:$val, bdaddr12only:$addr, imm32zx4:$len)>;
295 (VLLEBRZE VR128:$V1, bdxaddr12only:$XBD2), 0>;
297 (VLLEBRZG VR128:$V1, bdxaddr12only:$XBD2), 0>;
317 def : Pat<(z_storeeswap (v4f32 VR128:$val), bdxaddr12only:$addr),
318 (VSTERF VR128:$val, bdxaddr12only:$addr)>;
319 def : Pat<(z_storeeswap (v2f64 VR128:$val), bdxaddr12only:$addr),
320 (VSTERG VR128:$val, bdxaddr12only:$addr)>;
321 def : Pat<(z_storeeswap (v16i8 VR128:$val), bdxaddr12only:$addr),
322 (VSTBRQ VR128:$val, bdxaddr12only:$addr)>;
329 (VSTEBRF VR128:$V1, bdxaddr12only:$XBD2, 0), 0>;
331 (VSTEBRG VR128:$V1, bdxaddr12only:$XBD2, 0), 0>;
345 def : BinaryRRWithType<VMRHF, VR128, z_merge_high, v4f32>;
346 def : BinaryRRWithType<VMRHG, VR128, z_merge_high, v2f64>;
354 def : BinaryRRWithType<VMRLF, VR128, z_merge_low, v4f32>;
355 def : BinaryRRWithType<VMRLG, VR128, z_merge_low, v2f64>;
373 def : Pat<(v4f32 (z_splat VR128:$vec, imm32zx16_timm:$index)),
374 (VREPF VR128:$vec, imm32zx16:$index)>;
375 def : Pat<(v2f64 (z_splat VR128:$vec, imm32zx16_timm:$index)),
376 (VREPG VR128:$vec, imm32zx16:$index)>;
416 def : Pat<(z_vsei8_by_parts (v16i8 VR128:$src)), (VSEGB VR128:$src)>;
417 def : Pat<(z_vsei16_by_parts (v8i16 VR128:$src)), (VSEGH VR128:$src)>;
418 def : Pat<(z_vsei32_by_parts (v4i32 VR128:$src)), (VSEGF VR128:$src)>;
453 def : Pat<(store (type VR128:$src), bdxaddr12only:$addr),
454 (VST VR128:$src, bdxaddr12only:$addr)>;
455 def : Pat<(type (vselect (inttype VR128:$x), VR128:$y, VR128:$z)),
456 (VSEL VR128:$y, VR128:$z, VR128:$x)>;
457 def : Pat<(type (vselect (inttype (z_vnot VR128:$x)), VR128:$y, VR128:$z)),
458 (VSEL VR128:$z, VR128:$y, VR128:$x)>;
713 def : InstAlias<"vnot\t$V1, $V2", (VNO VR128:$V1, VR128:$V2, VR128:$V2), 0>;
725 def : Pat<(v16i8 (z_popcnt VR128:$x)), (VPOPCT VR128:$x, 0)>;
808 def : Pat<(int_s390_vsldb VR128:$x, VR128:$y, imm32zx8_timm:$z),
809 (VSLDB VR128:$x, VR128:$y, imm32zx8:$z)>;
875 def : Pat<(type (and VR128:$x, VR128:$y)), (VN VR128:$x, VR128:$y)>;
876 def : Pat<(type (and VR128:$x, (z_vnot VR128:$y))),
877 (VNC VR128:$x, VR128:$y)>;
878 def : Pat<(type (or VR128:$x, VR128:$y)), (VO VR128:$x, VR128:$y)>;
879 def : Pat<(type (xor VR128:$x, VR128:$y)), (VX VR128:$x, VR128:$y)>;
880 def : Pat<(type (or (and VR128:$x, VR128:$z),
881 (and VR128:$y, (z_vnot VR128:$z)))),
882 (VSEL VR128:$x, VR128:$y, VR128:$z)>;
883 def : Pat<(type (z_vnot (or VR128:$x, VR128:$y))),
884 (VNO VR128:$x, VR128:$y)>;
885 def : Pat<(type (z_vnot VR128:$x)), (VNO VR128:$x, VR128:$x)>;
888 def : Pat<(type (z_vnot (xor VR128:$x, VR128:$y))),
889 (VNX VR128:$x, VR128:$y)>;
890 def : Pat<(type (z_vnot (and VR128:$x, VR128:$y))),
891 (VNN VR128:$x, VR128:$y)>;
892 def : Pat<(type (or VR128:$x, (z_vnot VR128:$y))),
893 (VOC VR128:$x, VR128:$y)>;
908 def : Pat<(type (vselect (type (z_vicmph_zero VR128:$x)),
909 (z_vneg VR128:$x), VR128:$x)),
910 (lc (lp VR128:$x))>;
911 def : Pat<(type (vselect (type (z_vnot (z_vicmph_zero VR128:$x))),
912 VR128:$x, (z_vneg VR128:$x))),
913 (lc (lp VR128:$x))>;
914 def : Pat<(type (vselect (type (z_vicmpl_zero VR128:$x)),
915 VR128:$x, (z_vneg VR128:$x))),
916 (lc (lp VR128:$x))>;
917 def : Pat<(type (vselect (type (z_vnot (z_vicmpl_zero VR128:$x))),
918 (z_vneg VR128:$x), VR128:$x)),
919 (lc (lp VR128:$x))>;
920 def : Pat<(type (or (and (z_vsra_by_scalar VR128:$x, (i32 shift)),
921 (z_vneg VR128:$x)),
922 (and (z_vnot (z_vsra_by_scalar VR128:$x, (i32 shift))),
923 VR128:$x))),
924 (lp VR128:$x)>;
925 def : Pat<(type (or (and (z_vsra_by_scalar VR128:$x, (i32 shift)),
926 VR128:$x),
927 (and (z_vnot (z_vsra_by_scalar VR128:$x, (i32 shift))),
928 (z_vneg VR128:$x)))),
929 (lc (lp VR128:$x))>;
944 def : Pat<(type (vselect (cmph VR128:$x, VR128:$y), VR128:$x, VR128:$y)),
945 (max VR128:$x, VR128:$y)>;
946 def : Pat<(type (vselect (cmph VR128:$x, VR128:$y), VR128:$y, VR128:$x)),
947 (min VR128:$x, VR128:$y)>;
948 def : Pat<(type (vselect (z_vnot (cmph VR128:$x, VR128:$y)),
949 VR128:$x, VR128:$y)),
950 (min VR128:$x, VR128:$y)>;
951 def : Pat<(type (vselect (z_vnot (cmph VR128:$x, VR128:$y)),
952 VR128:$y, VR128:$x)),
953 (max VR128:$x, VR128:$y)>;
1191 def : Pat<(v4f32 (z_any_vround (v2f64 VR128:$src))), (VLEDB VR128:$src, 0, 0)>;
1203 def : Pat<(f32 (any_fpround (f128 VR128:$src))),
1204 (WLEDB (WFLRX VR128:$src, 0, 3), 0, 0)>;
1527 def : Pat<(v16i8 (bitconvert (v8i16 VR128:$src))), (v16i8 VR128:$src)>;
1528 def : Pat<(v16i8 (bitconvert (v4i32 VR128:$src))), (v16i8 VR128:$src)>;
1529 def : Pat<(v16i8 (bitconvert (v2i64 VR128:$src))), (v16i8 VR128:$src)>;
1530 def : Pat<(v16i8 (bitconvert (v4f32 VR128:$src))), (v16i8 VR128:$src)>;
1531 def : Pat<(v16i8 (bitconvert (v2f64 VR128:$src))), (v16i8 VR128:$src)>;
1532 def : Pat<(v16i8 (bitconvert (f128 VR128:$src))), (v16i8 VR128:$src)>;
1534 def : Pat<(v8i16 (bitconvert (v16i8 VR128:$src))), (v8i16 VR128:$src)>;
1535 def : Pat<(v8i16 (bitconvert (v4i32 VR128:$src))), (v8i16 VR128:$src)>;
1536 def : Pat<(v8i16 (bitconvert (v2i64 VR128:$src))), (v8i16 VR128:$src)>;
1537 def : Pat<(v8i16 (bitconvert (v4f32 VR128:$src))), (v8i16 VR128:$src)>;
1538 def : Pat<(v8i16 (bitconvert (v2f64 VR128:$src))), (v8i16 VR128:$src)>;
1539 def : Pat<(v8i16 (bitconvert (f128 VR128:$src))), (v8i16 VR128:$src)>;
1541 def : Pat<(v4i32 (bitconvert (v16i8 VR128:$src))), (v4i32 VR128:$src)>;
1542 def : Pat<(v4i32 (bitconvert (v8i16 VR128:$src))), (v4i32 VR128:$src)>;
1543 def : Pat<(v4i32 (bitconvert (v2i64 VR128:$src))), (v4i32 VR128:$src)>;
1544 def : Pat<(v4i32 (bitconvert (v4f32 VR128:$src))), (v4i32 VR128:$src)>;
1545 def : Pat<(v4i32 (bitconvert (v2f64 VR128:$src))), (v4i32 VR128:$src)>;
1546 def : Pat<(v4i32 (bitconvert (f128 VR128:$src))), (v4i32 VR128:$src)>;
1548 def : Pat<(v2i64 (bitconvert (v16i8 VR128:$src))), (v2i64 VR128:$src)>;
1549 def : Pat<(v2i64 (bitconvert (v8i16 VR128:$src))), (v2i64 VR128:$src)>;
1550 def : Pat<(v2i64 (bitconvert (v4i32 VR128:$src))), (v2i64 VR128:$src)>;
1551 def : Pat<(v2i64 (bitconvert (v4f32 VR128:$src))), (v2i64 VR128:$src)>;
1552 def : Pat<(v2i64 (bitconvert (v2f64 VR128:$src))), (v2i64 VR128:$src)>;
1553 def : Pat<(v2i64 (bitconvert (f128 VR128:$src))), (v2i64 VR128:$src)>;
1555 def : Pat<(v4f32 (bitconvert (v16i8 VR128:$src))), (v4f32 VR128:$src)>;
1556 def : Pat<(v4f32 (bitconvert (v8i16 VR128:$src))), (v4f32 VR128:$src)>;
1557 def : Pat<(v4f32 (bitconvert (v4i32 VR128:$src))), (v4f32 VR128:$src)>;
1558 def : Pat<(v4f32 (bitconvert (v2i64 VR128:$src))), (v4f32 VR128:$src)>;
1559 def : Pat<(v4f32 (bitconvert (v2f64 VR128:$src))), (v4f32 VR128:$src)>;
1560 def : Pat<(v4f32 (bitconvert (f128 VR128:$src))), (v4f32 VR128:$src)>;
1562 def : Pat<(v2f64 (bitconvert (v16i8 VR128:$src))), (v2f64 VR128:$src)>;
1563 def : Pat<(v2f64 (bitconvert (v8i16 VR128:$src))), (v2f64 VR128:$src)>;
1564 def : Pat<(v2f64 (bitconvert (v4i32 VR128:$src))), (v2f64 VR128:$src)>;
1565 def : Pat<(v2f64 (bitconvert (v2i64 VR128:$src))), (v2f64 VR128:$src)>;
1566 def : Pat<(v2f64 (bitconvert (v4f32 VR128:$src))), (v2f64 VR128:$src)>;
1567 def : Pat<(v2f64 (bitconvert (f128 VR128:$src))), (v2f64 VR128:$src)>;
1569 def : Pat<(f128 (bitconvert (v16i8 VR128:$src))), (f128 VR128:$src)>;
1570 def : Pat<(f128 (bitconvert (v8i16 VR128:$src))), (f128 VR128:$src)>;
1571 def : Pat<(f128 (bitconvert (v4i32 VR128:$src))), (f128 VR128:$src)>;
1572 def : Pat<(f128 (bitconvert (v2i64 VR128:$src))), (f128 VR128:$src)>;
1573 def : Pat<(f128 (bitconvert (v4f32 VR128:$src))), (f128 VR128:$src)>;
1574 def : Pat<(f128 (bitconvert (v2f64 VR128:$src))), (f128 VR128:$src)>;
1626 def : Pat<(z_vector_insert (v2f64 VR128:$vec), FP64:$elt, 0),
1628 subreg_h64), VR128:$vec, 1)>;
1629 def : Pat<(z_vector_insert (v2f64 VR128:$vec), FP64:$elt, 1),
1630 (VPDI VR128:$vec, (INSERT_SUBREG (v2f64 (IMPLICIT_DEF)), FP64:$elt,
1639 def : Pat<(f32 (z_vector_extract (v4f32 VR128:$vec), 0)),
1640 (EXTRACT_SUBREG VR128:$vec, subreg_h32)>;
1641 def : Pat<(f32 (z_vector_extract (v4f32 VR128:$vec), imm32zx2:$index)),
1642 (EXTRACT_SUBREG (VREPF VR128:$vec, imm32zx2:$index), subreg_h32)>;
1644 def : Pat<(f64 (z_vector_extract (v2f64 VR128:$vec), 0)),
1645 (EXTRACT_SUBREG VR128:$vec, subreg_h64)>;
1646 def : Pat<(f64 (z_vector_extract (v2f64 VR128:$vec), imm32zx1:$index)),
1647 (EXTRACT_SUBREG (VREPG VR128:$vec, imm32zx1:$index), subreg_h64)>;
1657 def : Pat<(store (f128 VR128:$src), bdxaddr12only:$addr),
1658 (VST VR128:$src, bdxaddr12only:$addr)>;
1759 def : Pat<(int_s390_vcfn VR128:$x, imm32zx4_timm:$m),
1760 (VCFN VR128:$x, 1, imm32zx4:$m)>;
1764 def : Pat<(int_s390_vclfnls VR128:$x, imm32zx4_timm:$m),
1765 (VCLFNL VR128:$x, 2, imm32zx4:$m)>;
1769 def : Pat<(int_s390_vclfnhs VR128:$x, imm32zx4_timm:$m),
1770 (VCLFNH VR128:$x, 2, imm32zx4:$m)>;
1774 def : Pat<(int_s390_vcnf VR128:$x, imm32zx4_timm:$m),
1775 (VCNF VR128:$x, imm32zx4:$m, 1)>;
1779 def : Pat<(int_s390_vcrnfs VR128:$x, VR128:$y, imm32zx4_timm:$m),
1780 (VCRNF VR128:$x, VR128:$y, imm32zx4:$m, 2)>;