Home | History | Annotate | Download | only in SystemZ

Lines Matching full:vr128

45   : Pat<(i32 (z_vector_extract (type VR128:$vec), shift12only:$index)),
46 (EXTRACT_SUBREG (insn VR128:$vec, shift12only:$index), subreg_l32)>;
153 def : Pat<(z_vlef32 (v4f32 VR128:$val), bdxaddr12only:$addr, imm32zx2:$index),
154 (VLEF VR128:$val, bdxaddr12only:$addr, imm32zx2:$index)>;
155 def : Pat<(z_vlef64 (v2f64 VR128:$val), bdxaddr12only:$addr, imm32zx1:$index),
156 (VLEG VR128:$val, bdxaddr12only:$addr, imm32zx1:$index)>;
201 def : Pat<(z_vstef32 (v4f32 VR128:$val), bdxaddr12only:$addr,
203 (VSTEF VR128:$val, bdxaddr12only:$addr, imm32zx2:$index)>;
204 def : Pat<(z_vstef64 (v2f64 VR128:$val), bdxaddr12only:$addr,
206 (VSTEG VR128:$val, bdxaddr12only:$addr, imm32zx1:$index)>;
230 def : BinaryRRWithType<VMRHF, VR128, z_merge_high, v4f32>;
231 def : BinaryRRWithType<VMRHG, VR128, z_merge_high, v2f64>;
238 def : BinaryRRWithType<VMRLF, VR128, z_merge_low, v4f32>;
239 def : BinaryRRWithType<VMRLG, VR128, z_merge_low, v2f64>;
252 def : Pat<(v4f32 (z_splat VR128:$vec, imm32zx16:$index)),
253 (VREPF VR128:$vec, imm32zx16:$index)>;
254 def : Pat<(v2f64 (z_splat VR128:$vec, imm32zx16:$index)),
255 (VREPG VR128:$vec, imm32zx16:$index)>;
291 def : Pat<(z_vsei8_by_parts (v16i8 VR128:$src)), (VSEGB VR128:$src)>;
292 def : Pat<(z_vsei16_by_parts (v8i16 VR128:$src)), (VSEGH VR128:$src)>;
293 def : Pat<(z_vsei32_by_parts (v4i32 VR128:$src)), (VSEGF VR128:$src)>;
324 def : Pat<(store (type VR128:$src), bdxaddr12only:$addr),
325 (VST VR128:$src, bdxaddr12only:$addr)>;
326 def : Pat<(type (vselect (inttype VR128:$x), VR128:$y, VR128:$z)),
327 (VSEL VR128:$y, VR128:$z, VR128:$x)>;
328 def : Pat<(type (vselect (inttype (z_vnot VR128:$x)), VR128:$y, VR128:$z)),
329 (VSEL VR128:$z, VR128:$y, VR128:$x)>;
527 def : Pat<(v16i8 (z_popcnt VR128:$x)), (VPOPCT VR128:$x, 0)>;
595 def : Pat<(int_s390_vsldb VR128:$x, VR128:$y, imm32zx8:$z),
596 (VSLDB VR128:$x, VR128:$y, imm32zx8:$z)>;
647 def : Pat<(type (and VR128:$x, VR128:$y)), (VN VR128:$x, VR128:$y)>;
648 def : Pat<(type (and VR128:$x, (z_vnot VR128:$y))),
649 (VNC VR128:$x, VR128:$y)>;
650 def : Pat<(type (or VR128:$x, VR128:$y)), (VO VR128:$x, VR128:$y)>;
651 def : Pat<(type (xor VR128:$x, VR128:$y)), (VX VR128:$x, VR128:$y)>;
652 def : Pat<(type (or (and VR128:$x, VR128:$z),
653 (and VR128:$y, (z_vnot VR128:$z)))),
654 (VSEL VR128:$x, VR128:$y, VR128:$z)>;
655 def : Pat<(type (z_vnot (or VR128:$x, VR128:$y))),
656 (VNO VR128:$x, VR128:$y)>;
657 def : Pat<(type (z_vnot VR128:$x)), (VNO VR128:$x, VR128:$x)>;
672 def : Pat<(type (vselect (type (z_vicmph_zero VR128:$x)),
673 (z_vneg VR128:$x), VR128:$x)),
674 (lc (lp VR128:$x))>;
675 def : Pat<(type (vselect (type (z_vnot (z_vicmph_zero VR128:$x))),
676 VR128:$x, (z_vneg VR128:$x))),
677 (lc (lp VR128:$x))>;
678 def : Pat<(type (vselect (type (z_vicmpl_zero VR128:$x)),
679 VR128:$x, (z_vneg VR128:$x))),
680 (lc (lp VR128:$x))>;
681 def : Pat<(type (vselect (type (z_vnot (z_vicmpl_zero VR128:$x))),
682 (z_vneg VR128:$x), VR128:$x)),
683 (lc (lp VR128:$x))>;
684 def : Pat<(type (or (and (z_vsra_by_scalar VR128:$x, (i32 shift)),
685 (z_vneg VR128:$x)),
686 (and (z_vnot (z_vsra_by_scalar VR128:$x, (i32 shift))),
687 VR128:$x))),
688 VR128:$x)>;
689 def : Pat<(type (or (and (z_vsra_by_scalar VR128:$x, (i32 shift)),
690 VR128:$x),
691 (and (z_vnot (z_vsra_by_scalar VR128:$x, (i32 shift))),
692 (z_vneg VR128:$x)))),
693 (lc (lp VR128:$x))>;
708 def : Pat<(type (vselect (cmph VR128:$x, VR128:$y), VR128:$x, VR128:$y)),
709 (max VR128:$x, VR128:$y)>;
710 def : Pat<(type (vselect (cmph VR128:$x, VR128:$y), VR128:$y, VR128:$x)),
711 (min VR128:$x, VR128:$y)>;
712 def : Pat<(type (vselect (z_vnot (cmph VR128:$x, VR128:$y)),
713 VR128:$x, VR128:$y)),
714 (min VR128:$x, VR128:$y)>;
715 def : Pat<(type (vselect (z_vnot (cmph VR128:$x, VR128:$y)),
716 VR128:$y, VR128:$x)),
717 (max VR128:$x, VR128:$y)>;
848 def : Pat<(v4f32 (z_vround (v2f64 VR128:$src))), (VLEDB VR128:$src, 0, 0)>;
926 def : Pat<(v16i8 (bitconvert (v8i16 VR128:$src))), (v16i8 VR128:$src)>;
927 def : Pat<(v16i8 (bitconvert (v4i32 VR128:$src))), (v16i8 VR128:$src)>;
928 def : Pat<(v16i8 (bitconvert (v2i64 VR128:$src))), (v16i8 VR128:$src)>;
929 def : Pat<(v16i8 (bitconvert (v4f32 VR128:$src))), (v16i8 VR128:$src)>;
930 def : Pat<(v16i8 (bitconvert (v2f64 VR128:$src))), (v16i8 VR128:$src)>;
932 def : Pat<(v8i16 (bitconvert (v16i8 VR128:$src))), (v8i16 VR128:$src)>;
933 def : Pat<(v8i16 (bitconvert (v4i32 VR128:$src))), (v8i16 VR128:$src)>;
934 def : Pat<(v8i16 (bitconvert (v2i64 VR128:$src))), (v8i16 VR128:$src)>;
935 def : Pat<(v8i16 (bitconvert (v4f32 VR128:$src))), (v8i16 VR128:$src)>;
936 def : Pat<(v8i16 (bitconvert (v2f64 VR128:$src))), (v8i16 VR128:$src)>;
938 def : Pat<(v4i32 (bitconvert (v16i8 VR128:$src))), (v4i32 VR128:$src)>;
939 def : Pat<(v4i32 (bitconvert (v8i16 VR128:$src))), (v4i32 VR128:$src)>;
940 def : Pat<(v4i32 (bitconvert (v2i64 VR128:$src))), (v4i32 VR128:$src)>;
941 def : Pat<(v4i32 (bitconvert (v4f32 VR128:$src))), (v4i32 VR128:$src)>;
942 def : Pat<(v4i32 (bitconvert (v2f64 VR128:$src))), (v4i32 VR128:$src)>;
944 def : Pat<(v2i64 (bitconvert (v16i8 VR128:$src))), (v2i64 VR128:$src)>;
945 def : Pat<(v2i64 (bitconvert (v8i16 VR128:$src))), (v2i64 VR128:$src)>;
946 def : Pat<(v2i64 (bitconvert (v4i32 VR128:$src))), (v2i64 VR128:$src)>;
947 def : Pat<(v2i64 (bitconvert (v4f32 VR128:$src))), (v2i64 VR128:$src)>;
948 def : Pat<(v2i64 (bitconvert (v2f64 VR128:$src))), (v2i64 VR128:$src)>;
950 def : Pat<(v4f32 (bitconvert (v16i8 VR128:$src))), (v4f32 VR128:$src)>;
951 def : Pat<(v4f32 (bitconvert (v8i16 VR128:$src))), (v4f32 VR128:$src)>;
952 def : Pat<(v4f32 (bitconvert (v4i32 VR128:$src))), (v4f32 VR128:$src)>;
953 def : Pat<(v4f32 (bitconvert (v2i64 VR128:$src))), (v4f32 VR128:$src)>;
954 def : Pat<(v4f32 (bitconvert (v2f64 VR128:$src))), (v4f32 VR128:$src)>;
956 def : Pat<(v2f64 (bitconvert (v16i8 VR128:$src))), (v2f64 VR128:$src)>;
957 def : Pat<(v2f64 (bitconvert (v8i16 VR128:$src))), (v2f64 VR128:$src)>;
958 def : Pat<(v2f64 (bitconvert (v4i32 VR128:$src))), (v2f64 VR128:$src)>;
959 def : Pat<(v2f64 (bitconvert (v2i64 VR128:$src))), (v2f64 VR128:$src)>;
960 def : Pat<(v2f64 (bitconvert (v4f32 VR128:$src))), (v2f64 VR128:$src)>;
1010 def : Pat<(z_vector_insert (v2f64 VR128:$vec), FP64:$elt, 0),
1012 subreg_r64), VR128:$vec, 1)>;
1013 def : Pat<(z_vector_insert (v2f64 VR128:$vec), FP64:$elt, 1),
1014 (VPDI VR128:$vec, (INSERT_SUBREG (v2f64 (IMPLICIT_DEF)), FP64:$elt,
1023 def : Pat<(f32 (z_vector_extract (v4f32 VR128:$vec), 0)),
1024 (EXTRACT_SUBREG VR128:$vec, subreg_r32)>;
1025 def : Pat<(f32 (z_vector_extract (v4f32 VR128:$vec), imm32zx2:$index)),
1026 (EXTRACT_SUBREG (VREPF VR128:$vec, imm32zx2:$index), subreg_r32)>;
1028 def : Pat<(f64 (z_vector_extract (v2f64 VR128:$vec), 0)),
1029 (EXTRACT_SUBREG VR128:$vec, subreg_r64)>;
1030 def : Pat<(f64 (z_vector_extract (v2f64 VR128:$vec), imm32zx1:$index)),
1031 (EXTRACT_SUBREG (VREPG VR128:$vec, imm32zx1:$index), subreg_r64)>;