; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr -verify-machineinstrs -mcpu=pwr8 -mattr=+vsx \
; RUN:   -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s --check-prefix=CHECK-P8

; RUN: llc -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr -verify-machineinstrs -mcpu=pwr9 -mattr=+vsx \
; RUN:   -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s --check-prefix=CHECK-P9

; RUN: llc -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr -verify-machineinstrs -mcpu=pwr8 -mattr=+vsx \
; RUN:   -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s --check-prefix=CHECK-P8-BE

; RUN: llc -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr -verify-machineinstrs -mcpu=pwr9 -mattr=+vsx \
; RUN:   -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s --check-prefix=CHECK-P9-BE

define <2 x i64> @load_swap00(ptr %vp1, ptr %vp2) {
; CHECK-P8-LABEL: load_swap00:
; CHECK-P8:       # %bb.0:
; CHECK-P8-NEXT:    lxvd2x v2, 0, r3
; CHECK-P8-NEXT:    blr
;
; CHECK-P9-LABEL: load_swap00:
; CHECK-P9:       # %bb.0:
; CHECK-P9-NEXT:    lxvd2x v2, 0, r3
; CHECK-P9-NEXT:    blr
;
; CHECK-P8-BE-LABEL: load_swap00:
; CHECK-P8-BE:       # %bb.0:
; CHECK-P8-BE-NEXT:    lxvd2x v2, 0, r3
; CHECK-P8-BE-NEXT:    xxswapd v2, v2
; CHECK-P8-BE-NEXT:    blr
;
; CHECK-P9-BE-LABEL: load_swap00:
; CHECK-P9-BE:       # %bb.0:
; CHECK-P9-BE-NEXT:    lxv v2, 0(r3)
; CHECK-P9-BE-NEXT:    xxswapd v2, v2
; CHECK-P9-BE-NEXT:    blr
  %v1 = load <2 x i64>, ptr %vp1
  %v2 = load <2 x i64>, ptr %vp2
  %v3 = shufflevector <2 x i64> %v1, <2 x i64> %v2, <2 x i32> <i32 1, i32 0>
  ret <2 x i64> %v3
}

define <2 x i64> @load_swap01(ptr %vp1, ptr %vp2) {
; CHECK-P8-LABEL: load_swap01:
; CHECK-P8:       # %bb.0:
; CHECK-P8-NEXT:    lxvd2x v2, 0, r4
; CHECK-P8-NEXT:    blr
;
; CHECK-P9-LABEL: load_swap01:
; CHECK-P9:       # %bb.0:
; CHECK-P9-NEXT:    lxvd2x v2, 0, r4
; CHECK-P9-NEXT:    blr
;
; CHECK-P8-BE-LABEL: load_swap01:
; CHECK-P8-BE:       # %bb.0:
; CHECK-P8-BE-NEXT:    lxvd2x v2, 0, r4
; CHECK-P8-BE-NEXT:    xxswapd v2, v2
; CHECK-P8-BE-NEXT:    blr
;
; CHECK-P9-BE-LABEL: load_swap01:
; CHECK-P9-BE:       # %bb.0:
; CHECK-P9-BE-NEXT:    lxv v2, 0(r4)
; CHECK-P9-BE-NEXT:    xxswapd v2, v2
; CHECK-P9-BE-NEXT:    blr
  %v1 = load <2 x i64>, ptr %vp1
  %v2 = load <2 x i64>, ptr %vp2
  %v3 = shufflevector <2 x i64> %v1, <2 x i64> %v2, <2 x i32> <i32 3, i32 2>
  ret <2 x i64> %v3
}

define <4 x i32> @load_swap10(ptr %vp1, ptr %vp2) {
; CHECK-P8-LABEL: load_swap10:
; CHECK-P8:       # %bb.0:
; CHECK-P8-NEXT:    lxvd2x vs0, 0, r3
; CHECK-P8-NEXT:    addis r3, r2, .LCPI2_0@toc@ha
; CHECK-P8-NEXT:    addi r3, r3, .LCPI2_0@toc@l
; CHECK-P8-NEXT:    xxswapd v2, vs0
; CHECK-P8-NEXT:    lxvd2x vs0, 0, r3
; CHECK-P8-NEXT:    xxswapd v3, vs0
; CHECK-P8-NEXT:    vperm v2, v2, v2, v3
; CHECK-P8-NEXT:    blr
;
; CHECK-P9-LABEL: load_swap10:
; CHECK-P9:       # %bb.0:
; CHECK-P9-NEXT:    lxvw4x v2, 0, r3
; CHECK-P9-NEXT:    blr
;
; CHECK-P8-BE-LABEL: load_swap10:
; CHECK-P8-BE:       # %bb.0:
; CHECK-P8-BE-NEXT:    lxvw4x v2, 0, r3
; CHECK-P8-BE-NEXT:    addis r3, r2, .LCPI2_0@toc@ha
; CHECK-P8-BE-NEXT:    addi r3, r3, .LCPI2_0@toc@l
; CHECK-P8-BE-NEXT:    lxvw4x v3, 0, r3
; CHECK-P8-BE-NEXT:    vperm v2, v2, v2, v3
; CHECK-P8-BE-NEXT:    blr
;
; CHECK-P9-BE-LABEL: load_swap10:
; CHECK-P9-BE:       # %bb.0:
; CHECK-P9-BE-NEXT:    lxv v2, 0(r3)
; CHECK-P9-BE-NEXT:    addis r3, r2, .LCPI2_0@toc@ha
; CHECK-P9-BE-NEXT:    addi r3, r3, .LCPI2_0@toc@l
; CHECK-P9-BE-NEXT:    lxv vs0, 0(r3)
; CHECK-P9-BE-NEXT:    xxperm v2, v2, vs0
; CHECK-P9-BE-NEXT:    blr
  %v1 = load <4 x i32>, ptr %vp1
  %v2 = load <4 x i32>, ptr %vp2
  %v3 = shufflevector <4 x i32> %v1, <4 x i32> %v2, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
  ret <4 x i32> %v3
}

define <4 x i32> @load_swap11(ptr %vp1, ptr %vp2) {
; CHECK-P8-LABEL: load_swap11:
; CHECK-P8:       # %bb.0:
; CHECK-P8-NEXT:    lxvd2x vs0, 0, r4
; CHECK-P8-NEXT:    addis r3, r2, .LCPI3_0@toc@ha
; CHECK-P8-NEXT:    addi r3, r3, .LCPI3_0@toc@l
; CHECK-P8-NEXT:    xxswapd v2, vs0
; CHECK-P8-NEXT:    lxvd2x vs0, 0, r3
; CHECK-P8-NEXT:    xxswapd v3, vs0
; CHECK-P8-NEXT:    vperm v2, v2, v2, v3
; CHECK-P8-NEXT:    blr
;
; CHECK-P9-LABEL: load_swap11:
; CHECK-P9:       # %bb.0:
; CHECK-P9-NEXT:    lxvw4x v2, 0, r4
; CHECK-P9-NEXT:    blr
;
; CHECK-P8-BE-LABEL: load_swap11:
; CHECK-P8-BE:       # %bb.0:
; CHECK-P8-BE-NEXT:    addis r3, r2, .LCPI3_0@toc@ha
; CHECK-P8-BE-NEXT:    lxvw4x v2, 0, r4
; CHECK-P8-BE-NEXT:    addi r3, r3, .LCPI3_0@toc@l
; CHECK-P8-BE-NEXT:    lxvw4x v3, 0, r3
; CHECK-P8-BE-NEXT:    vperm v2, v2, v2, v3
; CHECK-P8-BE-NEXT:    blr
;
; CHECK-P9-BE-LABEL: load_swap11:
; CHECK-P9-BE:       # %bb.0:
; CHECK-P9-BE-NEXT:    addis r3, r2, .LCPI3_0@toc@ha
; CHECK-P9-BE-NEXT:    lxv v2, 0(r4)
; CHECK-P9-BE-NEXT:    addi r3, r3, .LCPI3_0@toc@l
; CHECK-P9-BE-NEXT:    lxv vs0, 0(r3)
; CHECK-P9-BE-NEXT:    xxperm v2, v2, vs0
; CHECK-P9-BE-NEXT:    blr
  %v1 = load <4 x i32>, ptr %vp1
  %v2 = load <4 x i32>, ptr %vp2
  %v3 = shufflevector <4 x i32> %v1, <4 x i32> %v2, <4 x i32> <i32 7, i32 6, i32 5, i32 4>
  ret <4 x i32> %v3
}

define <8 x i16> @load_swap20(ptr %vp1, ptr %vp2){
; CHECK-P8-LABEL: load_swap20:
; CHECK-P8:       # %bb.0:
; CHECK-P8-NEXT:    lxvd2x vs0, 0, r3
; CHECK-P8-NEXT:    addis r3, r2, .LCPI4_0@toc@ha
; CHECK-P8-NEXT:    addi r3, r3, .LCPI4_0@toc@l
; CHECK-P8-NEXT:    xxswapd v2, vs0
; CHECK-P8-NEXT:    lxvd2x vs0, 0, r3
; CHECK-P8-NEXT:    xxswapd v3, vs0
; CHECK-P8-NEXT:    vperm v2, v2, v2, v3
; CHECK-P8-NEXT:    blr
;
; CHECK-P9-LABEL: load_swap20:
; CHECK-P9:       # %bb.0:
; CHECK-P9-NEXT:    lxvh8x v2, 0, r3
; CHECK-P9-NEXT:    blr
;
; CHECK-P8-BE-LABEL: load_swap20:
; CHECK-P8-BE:       # %bb.0:
; CHECK-P8-BE-NEXT:    lxvw4x v2, 0, r3
; CHECK-P8-BE-NEXT:    addis r3, r2, .LCPI4_0@toc@ha
; CHECK-P8-BE-NEXT:    addi r3, r3, .LCPI4_0@toc@l
; CHECK-P8-BE-NEXT:    lxvw4x v3, 0, r3
; CHECK-P8-BE-NEXT:    vperm v2, v2, v2, v3
; CHECK-P8-BE-NEXT:    blr
;
; CHECK-P9-BE-LABEL: load_swap20:
; CHECK-P9-BE:       # %bb.0:
; CHECK-P9-BE-NEXT:    lxv v2, 0(r3)
; CHECK-P9-BE-NEXT:    addis r3, r2, .LCPI4_0@toc@ha
; CHECK-P9-BE-NEXT:    addi r3, r3, .LCPI4_0@toc@l
; CHECK-P9-BE-NEXT:    lxv vs0, 0(r3)
; CHECK-P9-BE-NEXT:    xxperm v2, v2, vs0
; CHECK-P9-BE-NEXT:    blr
  %v1 = load <8 x i16>, ptr %vp1
  %v2 = load <8 x i16>, ptr %vp2
  %v3 = shufflevector <8 x i16> %v1, <8 x i16> %v2, <8 x i32> <i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0>
  ret <8 x i16> %v3
}

define <8 x i16> @load_swap21(ptr %vp1, ptr %vp2){
; CHECK-P8-LABEL: load_swap21:
; CHECK-P8:       # %bb.0:
; CHECK-P8-NEXT:    lxvd2x vs0, 0, r4
; CHECK-P8-NEXT:    addis r3, r2, .LCPI5_0@toc@ha
; CHECK-P8-NEXT:    addi r3, r3, .LCPI5_0@toc@l
; CHECK-P8-NEXT:    xxswapd v2, vs0
; CHECK-P8-NEXT:    lxvd2x vs0, 0, r3
; CHECK-P8-NEXT:    xxswapd v3, vs0
; CHECK-P8-NEXT:    vperm v2, v2, v2, v3
; CHECK-P8-NEXT:    blr
;
; CHECK-P9-LABEL: load_swap21:
; CHECK-P9:       # %bb.0:
; CHECK-P9-NEXT:    lxvh8x v2, 0, r4
; CHECK-P9-NEXT:    blr
;
; CHECK-P8-BE-LABEL: load_swap21:
; CHECK-P8-BE:       # %bb.0:
; CHECK-P8-BE-NEXT:    addis r3, r2, .LCPI5_0@toc@ha
; CHECK-P8-BE-NEXT:    lxvw4x v2, 0, r4
; CHECK-P8-BE-NEXT:    addi r3, r3, .LCPI5_0@toc@l
; CHECK-P8-BE-NEXT:    lxvw4x v3, 0, r3
; CHECK-P8-BE-NEXT:    vperm v2, v2, v2, v3
; CHECK-P8-BE-NEXT:    blr
;
; CHECK-P9-BE-LABEL: load_swap21:
; CHECK-P9-BE:       # %bb.0:
; CHECK-P9-BE-NEXT:    addis r3, r2, .LCPI5_0@toc@ha
; CHECK-P9-BE-NEXT:    lxv v2, 0(r4)
; CHECK-P9-BE-NEXT:    addi r3, r3, .LCPI5_0@toc@l
; CHECK-P9-BE-NEXT:    lxv vs0, 0(r3)
; CHECK-P9-BE-NEXT:    xxperm v2, v2, vs0
; CHECK-P9-BE-NEXT:    blr
  %v1 = load <8 x i16>, ptr %vp1
  %v2 = load <8 x i16>, ptr %vp2
  %v3 = shufflevector <8 x i16> %v1, <8 x i16> %v2, <8 x i32> <i32 15, i32 14, i32 13, i32 12, i32 11, i32 10, i32 9, i32 8>
  ret <8 x i16> %v3
}

define <16 x i8> @load_swap30(ptr %vp1, ptr %vp2){
; CHECK-P8-LABEL: load_swap30:
; CHECK-P8:       # %bb.0:
; CHECK-P8-NEXT:    lxvd2x vs0, 0, r3
; CHECK-P8-NEXT:    addis r3, r2, .LCPI6_0@toc@ha
; CHECK-P8-NEXT:    addi r3, r3, .LCPI6_0@toc@l
; CHECK-P8-NEXT:    xxswapd v2, vs0
; CHECK-P8-NEXT:    lxvd2x vs0, 0, r3
; CHECK-P8-NEXT:    xxswapd v3, vs0
; CHECK-P8-NEXT:    vperm v2, v2, v2, v3
; CHECK-P8-NEXT:    blr
;
; CHECK-P9-LABEL: load_swap30:
; CHECK-P9:       # %bb.0:
; CHECK-P9-NEXT:    lxvb16x v2, 0, r3
; CHECK-P9-NEXT:    blr
;
; CHECK-P8-BE-LABEL: load_swap30:
; CHECK-P8-BE:       # %bb.0:
; CHECK-P8-BE-NEXT:    lxvw4x v2, 0, r3
; CHECK-P8-BE-NEXT:    addis r3, r2, .LCPI6_0@toc@ha
; CHECK-P8-BE-NEXT:    addi r3, r3, .LCPI6_0@toc@l
; CHECK-P8-BE-NEXT:    lxvw4x v3, 0, r3
; CHECK-P8-BE-NEXT:    vperm v2, v2, v2, v3
; CHECK-P8-BE-NEXT:    blr
;
; CHECK-P9-BE-LABEL: load_swap30:
; CHECK-P9-BE:       # %bb.0:
; CHECK-P9-BE-NEXT:    lxv vs0, 0(r3)
; CHECK-P9-BE-NEXT:    xxbrq v2, vs0
; CHECK-P9-BE-NEXT:    blr
  %v1 = load <16 x i8>, ptr %vp1
  %v2 = load <16 x i8>, ptr %vp2
  %v3 = shufflevector <16 x i8> %v1, <16 x i8> %v2, <16 x i32> <i32 15, i32 14, i32 13, i32 12, i32 11, i32 10, i32 9, i32 8, i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0>
  ret <16 x i8> %v3
}

define <16 x i8> @load_swap31(ptr %vp1, ptr %vp2){
; CHECK-P8-LABEL: load_swap31:
; CHECK-P8:       # %bb.0:
; CHECK-P8-NEXT:    lxvd2x vs0, 0, r4
; CHECK-P8-NEXT:    addis r3, r2, .LCPI7_0@toc@ha
; CHECK-P8-NEXT:    addi r3, r3, .LCPI7_0@toc@l
; CHECK-P8-NEXT:    xxswapd v2, vs0
; CHECK-P8-NEXT:    lxvd2x vs0, 0, r3
; CHECK-P8-NEXT:    xxswapd v3, vs0
; CHECK-P8-NEXT:    vperm v2, v2, v2, v3
; CHECK-P8-NEXT:    blr
;
; CHECK-P9-LABEL: load_swap31:
; CHECK-P9:       # %bb.0:
; CHECK-P9-NEXT:    lxvb16x v2, 0, r4
; CHECK-P9-NEXT:    blr
;
; CHECK-P8-BE-LABEL: load_swap31:
; CHECK-P8-BE:       # %bb.0:
; CHECK-P8-BE-NEXT:    addis r3, r2, .LCPI7_0@toc@ha
; CHECK-P8-BE-NEXT:    lxvw4x v2, 0, r4
; CHECK-P8-BE-NEXT:    addi r3, r3, .LCPI7_0@toc@l
; CHECK-P8-BE-NEXT:    lxvw4x v3, 0, r3
; CHECK-P8-BE-NEXT:    vperm v2, v2, v2, v3
; CHECK-P8-BE-NEXT:    blr
;
; CHECK-P9-BE-LABEL: load_swap31:
; CHECK-P9-BE:       # %bb.0:
; CHECK-P9-BE-NEXT:    lxv vs0, 0(r4)
; CHECK-P9-BE-NEXT:    xxbrq v2, vs0
; CHECK-P9-BE-NEXT:    blr
  %v1 = load <16 x i8>, ptr %vp1
  %v2 = load <16 x i8>, ptr %vp2
  %v3 = shufflevector <16 x i8> %v1, <16 x i8> %v2, <16 x i32> <i32 31, i32 30, i32 29, i32 28, i32 27, i32 26, i32 25, i32 24, i32 23, i32 22, i32 21, i32 20, i32 19, i32 18, i32 17, i32 16>
  ret <16 x i8> %v3
}

define <2 x double> @load_swap40(ptr %vp1, ptr %vp2) {
; CHECK-P8-LABEL: load_swap40:
; CHECK-P8:       # %bb.0:
; CHECK-P8-NEXT:    lxvd2x v2, 0, r4
; CHECK-P8-NEXT:    blr
;
; CHECK-P9-LABEL: load_swap40:
; CHECK-P9:       # %bb.0:
; CHECK-P9-NEXT:    lxvd2x v2, 0, r4
; CHECK-P9-NEXT:    blr
;
; CHECK-P8-BE-LABEL: load_swap40:
; CHECK-P8-BE:       # %bb.0:
; CHECK-P8-BE-NEXT:    lxvd2x vs0, 0, r4
; CHECK-P8-BE-NEXT:    xxswapd v2, vs0
; CHECK-P8-BE-NEXT:    blr
;
; CHECK-P9-BE-LABEL: load_swap40:
; CHECK-P9-BE:       # %bb.0:
; CHECK-P9-BE-NEXT:    lxv vs0, 0(r4)
; CHECK-P9-BE-NEXT:    xxswapd v2, vs0
; CHECK-P9-BE-NEXT:    blr
  %v1 = load <2 x double>, ptr %vp1
  %v2 = load <2 x double>, ptr %vp2
  %v3 = shufflevector <2 x double> %v1, <2 x double> %v2, <2 x i32> <i32 3, i32 2>
  ret <2 x double> %v3
}

define <4 x float> @load_swap50(ptr %vp1, ptr %vp2) {
; CHECK-P8-LABEL: load_swap50:
; CHECK-P8:       # %bb.0:
; CHECK-P8-NEXT:    lxvd2x vs0, 0, r3
; CHECK-P8-NEXT:    addis r3, r2, .LCPI9_0@toc@ha
; CHECK-P8-NEXT:    addi r3, r3, .LCPI9_0@toc@l
; CHECK-P8-NEXT:    xxswapd v2, vs0
; CHECK-P8-NEXT:    lxvd2x vs0, 0, r3
; CHECK-P8-NEXT:    xxswapd v3, vs0
; CHECK-P8-NEXT:    vperm v2, v2, v2, v3
; CHECK-P8-NEXT:    blr
;
; CHECK-P9-LABEL: load_swap50:
; CHECK-P9:       # %bb.0:
; CHECK-P9-NEXT:    lxvw4x v2, 0, r3
; CHECK-P9-NEXT:    blr
;
; CHECK-P8-BE-LABEL: load_swap50:
; CHECK-P8-BE:       # %bb.0:
; CHECK-P8-BE-NEXT:    lxvw4x v2, 0, r3
; CHECK-P8-BE-NEXT:    addis r3, r2, .LCPI9_0@toc@ha
; CHECK-P8-BE-NEXT:    addi r3, r3, .LCPI9_0@toc@l
; CHECK-P8-BE-NEXT:    lxvw4x v3, 0, r3
; CHECK-P8-BE-NEXT:    vperm v2, v2, v2, v3
; CHECK-P8-BE-NEXT:    blr
;
; CHECK-P9-BE-LABEL: load_swap50:
; CHECK-P9-BE:       # %bb.0:
; CHECK-P9-BE-NEXT:    lxv v2, 0(r3)
; CHECK-P9-BE-NEXT:    addis r3, r2, .LCPI9_0@toc@ha
; CHECK-P9-BE-NEXT:    addi r3, r3, .LCPI9_0@toc@l
; CHECK-P9-BE-NEXT:    lxv vs0, 0(r3)
; CHECK-P9-BE-NEXT:    xxperm v2, v2, vs0
; CHECK-P9-BE-NEXT:    blr
  %v1 = load <4 x float>, ptr %vp1
  %v2 = load <4 x float>, ptr %vp2
  %v3 = shufflevector <4 x float> %v1, <4 x float> %v2, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
  ret <4 x float> %v3
}

define <4 x float> @load_swap51(ptr %vp1, ptr %vp2) {
; CHECK-P8-LABEL: load_swap51:
; CHECK-P8:       # %bb.0:
; CHECK-P8-NEXT:    lxvd2x vs0, 0, r4
; CHECK-P8-NEXT:    addis r3, r2, .LCPI10_0@toc@ha
; CHECK-P8-NEXT:    addi r3, r3, .LCPI10_0@toc@l
; CHECK-P8-NEXT:    xxswapd v2, vs0
; CHECK-P8-NEXT:    lxvd2x vs0, 0, r3
; CHECK-P8-NEXT:    xxswapd v3, vs0
; CHECK-P8-NEXT:    vperm v2, v2, v2, v3
; CHECK-P8-NEXT:    blr
;
; CHECK-P9-LABEL: load_swap51:
; CHECK-P9:       # %bb.0:
; CHECK-P9-NEXT:    lxvw4x v2, 0, r4
; CHECK-P9-NEXT:    blr
;
; CHECK-P8-BE-LABEL: load_swap51:
; CHECK-P8-BE:       # %bb.0:
; CHECK-P8-BE-NEXT:    addis r3, r2, .LCPI10_0@toc@ha
; CHECK-P8-BE-NEXT:    lxvw4x v2, 0, r4
; CHECK-P8-BE-NEXT:    addi r3, r3, .LCPI10_0@toc@l
; CHECK-P8-BE-NEXT:    lxvw4x v3, 0, r3
; CHECK-P8-BE-NEXT:    vperm v2, v2, v2, v3
; CHECK-P8-BE-NEXT:    blr
;
; CHECK-P9-BE-LABEL: load_swap51:
; CHECK-P9-BE:       # %bb.0:
; CHECK-P9-BE-NEXT:    addis r3, r2, .LCPI10_0@toc@ha
; CHECK-P9-BE-NEXT:    lxv v2, 0(r4)
; CHECK-P9-BE-NEXT:    addi r3, r3, .LCPI10_0@toc@l
; CHECK-P9-BE-NEXT:    lxv vs0, 0(r3)
; CHECK-P9-BE-NEXT:    xxperm v2, v2, vs0
; CHECK-P9-BE-NEXT:    blr
  %v1 = load <4 x float>, ptr %vp1
  %v2 = load <4 x float>, ptr %vp2
  %v3 = shufflevector <4 x float> %v1, <4 x float> %v2, <4 x i32> <i32 7, i32 6, i32 5, i32 4>
  ret <4 x float> %v3
}

define void @swap_store00(<2 x i64> %v1, <2 x i64> %v2, ptr %vp) {
; CHECK-P8-LABEL: swap_store00:
; CHECK-P8:       # %bb.0:
; CHECK-P8-NEXT:    stxvd2x v2, 0, r7
; CHECK-P8-NEXT:    blr
;
; CHECK-P9-LABEL: swap_store00:
; CHECK-P9:       # %bb.0:
; CHECK-P9-NEXT:    stxvd2x v2, 0, r7
; CHECK-P9-NEXT:    blr
;
; CHECK-P8-BE-LABEL: swap_store00:
; CHECK-P8-BE:       # %bb.0:
; CHECK-P8-BE-NEXT:    xxswapd vs0, v2
; CHECK-P8-BE-NEXT:    stxvd2x vs0, 0, r7
; CHECK-P8-BE-NEXT:    blr
;
; CHECK-P9-BE-LABEL: swap_store00:
; CHECK-P9-BE:       # %bb.0:
; CHECK-P9-BE-NEXT:    xxswapd vs0, v2
; CHECK-P9-BE-NEXT:    stxv vs0, 0(r7)
; CHECK-P9-BE-NEXT:    blr
  %v3 = shufflevector <2 x i64> %v1, <2 x i64> %v2, <2 x i32> <i32 1, i32 0>
  store <2 x i64> %v3, ptr %vp
  ret void
}

define void @swap_store01(<2 x i64> %v1, <2 x i64> %v2, ptr %vp) {
; CHECK-P8-LABEL: swap_store01:
; CHECK-P8:       # %bb.0:
; CHECK-P8-NEXT:    stxvd2x v3, 0, r7
; CHECK-P8-NEXT:    blr
;
; CHECK-P9-LABEL: swap_store01:
; CHECK-P9:       # %bb.0:
; CHECK-P9-NEXT:    stxvd2x v3, 0, r7
; CHECK-P9-NEXT:    blr
;
; CHECK-P8-BE-LABEL: swap_store01:
; CHECK-P8-BE:       # %bb.0:
; CHECK-P8-BE-NEXT:    xxswapd vs0, v3
; CHECK-P8-BE-NEXT:    stxvd2x vs0, 0, r7
; CHECK-P8-BE-NEXT:    blr
;
; CHECK-P9-BE-LABEL: swap_store01:
; CHECK-P9-BE:       # %bb.0:
; CHECK-P9-BE-NEXT:    xxswapd vs0, v3
; CHECK-P9-BE-NEXT:    stxv vs0, 0(r7)
; CHECK-P9-BE-NEXT:    blr
  %v3 = shufflevector <2 x i64> %v1, <2 x i64> %v2, <2 x i32> <i32 3, i32 2>
  store <2 x i64> %v3, ptr %vp
  ret void
}

define void @swap_store10(<4 x i32> %v1, <4 x i32> %v2, ptr %vp) {
; CHECK-P8-LABEL: swap_store10:
; CHECK-P8:       # %bb.0:
; CHECK-P8-NEXT:    addis r3, r2, .LCPI13_0@toc@ha
; CHECK-P8-NEXT:    addi r3, r3, .LCPI13_0@toc@l
; CHECK-P8-NEXT:    lxvd2x vs0, 0, r3
; CHECK-P8-NEXT:    xxswapd v3, vs0
; CHECK-P8-NEXT:    vperm v2, v2, v2, v3
; CHECK-P8-NEXT:    xxswapd vs0, v2
; CHECK-P8-NEXT:    stxvd2x vs0, 0, r7
; CHECK-P8-NEXT:    blr
;
; CHECK-P9-LABEL: swap_store10:
; CHECK-P9:       # %bb.0:
; CHECK-P9-NEXT:    stxvw4x v2, 0, r7
; CHECK-P9-NEXT:    blr
;
; CHECK-P8-BE-LABEL: swap_store10:
; CHECK-P8-BE:       # %bb.0:
; CHECK-P8-BE-NEXT:    addis r3, r2, .LCPI13_0@toc@ha
; CHECK-P8-BE-NEXT:    addi r3, r3, .LCPI13_0@toc@l
; CHECK-P8-BE-NEXT:    lxvw4x v3, 0, r3
; CHECK-P8-BE-NEXT:    vperm v2, v2, v2, v3
; CHECK-P8-BE-NEXT:    stxvw4x v2, 0, r7
; CHECK-P8-BE-NEXT:    blr
;
; CHECK-P9-BE-LABEL: swap_store10:
; CHECK-P9-BE:       # %bb.0:
; CHECK-P9-BE-NEXT:    addis r3, r2, .LCPI13_0@toc@ha
; CHECK-P9-BE-NEXT:    addi r3, r3, .LCPI13_0@toc@l
; CHECK-P9-BE-NEXT:    lxv vs0, 0(r3)
; CHECK-P9-BE-NEXT:    xxperm v2, v2, vs0
; CHECK-P9-BE-NEXT:    stxv v2, 0(r7)
; CHECK-P9-BE-NEXT:    blr
  %v3 = shufflevector <4 x i32> %v1, <4 x i32> %v2, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
  store <4 x i32> %v3, ptr %vp
  ret void
}

define void @swap_store11(<4 x i32> %v1, <4 x i32> %v2, ptr %vp) {
; CHECK-P8-LABEL: swap_store11:
; CHECK-P8:       # %bb.0:
; CHECK-P8-NEXT:    addis r3, r2, .LCPI14_0@toc@ha
; CHECK-P8-NEXT:    addi r3, r3, .LCPI14_0@toc@l
; CHECK-P8-NEXT:    lxvd2x vs0, 0, r3
; CHECK-P8-NEXT:    xxswapd v2, vs0
; CHECK-P8-NEXT:    vperm v2, v3, v3, v2
; CHECK-P8-NEXT:    xxswapd vs0, v2
; CHECK-P8-NEXT:    stxvd2x vs0, 0, r7
; CHECK-P8-NEXT:    blr
;
; CHECK-P9-LABEL: swap_store11:
; CHECK-P9:       # %bb.0:
; CHECK-P9-NEXT:    stxvw4x v3, 0, r7
; CHECK-P9-NEXT:    blr
;
; CHECK-P8-BE-LABEL: swap_store11:
; CHECK-P8-BE:       # %bb.0:
; CHECK-P8-BE-NEXT:    addis r3, r2, .LCPI14_0@toc@ha
; CHECK-P8-BE-NEXT:    addi r3, r3, .LCPI14_0@toc@l
; CHECK-P8-BE-NEXT:    lxvw4x v2, 0, r3
; CHECK-P8-BE-NEXT:    vperm v2, v3, v3, v2
; CHECK-P8-BE-NEXT:    stxvw4x v2, 0, r7
; CHECK-P8-BE-NEXT:    blr
;
; CHECK-P9-BE-LABEL: swap_store11:
; CHECK-P9-BE:       # %bb.0:
; CHECK-P9-BE-NEXT:    addis r3, r2, .LCPI14_0@toc@ha
; CHECK-P9-BE-NEXT:    addi r3, r3, .LCPI14_0@toc@l
; CHECK-P9-BE-NEXT:    lxv vs0, 0(r3)
; CHECK-P9-BE-NEXT:    xxperm v3, v3, vs0
; CHECK-P9-BE-NEXT:    stxv v3, 0(r7)
; CHECK-P9-BE-NEXT:    blr
  %v3 = shufflevector <4 x i32> %v1, <4 x i32> %v2, <4 x i32> <i32 7, i32 6, i32 5, i32 4>
  store <4 x i32> %v3, ptr %vp
  ret void
}

define void @swap_store20(<8 x i16> %v1, <8 x i16> %v2, ptr %vp) {
; CHECK-P8-LABEL: swap_store20:
; CHECK-P8:       # %bb.0:
; CHECK-P8-NEXT:    addis r3, r2, .LCPI15_0@toc@ha
; CHECK-P8-NEXT:    addi r3, r3, .LCPI15_0@toc@l
; CHECK-P8-NEXT:    lxvd2x vs0, 0, r3
; CHECK-P8-NEXT:    xxswapd v3, vs0
; CHECK-P8-NEXT:    vperm v2, v2, v2, v3
; CHECK-P8-NEXT:    xxswapd vs0, v2
; CHECK-P8-NEXT:    stxvd2x vs0, 0, r7
; CHECK-P8-NEXT:    blr
;
; CHECK-P9-LABEL: swap_store20:
; CHECK-P9:       # %bb.0:
; CHECK-P9-NEXT:    stxvh8x v2, 0, r7
; CHECK-P9-NEXT:    blr
;
; CHECK-P8-BE-LABEL: swap_store20:
; CHECK-P8-BE:       # %bb.0:
; CHECK-P8-BE-NEXT:    addis r3, r2, .LCPI15_0@toc@ha
; CHECK-P8-BE-NEXT:    addi r3, r3, .LCPI15_0@toc@l
; CHECK-P8-BE-NEXT:    lxvw4x v3, 0, r3
; CHECK-P8-BE-NEXT:    vperm v2, v2, v2, v3
; CHECK-P8-BE-NEXT:    stxvw4x v2, 0, r7
; CHECK-P8-BE-NEXT:    blr
;
; CHECK-P9-BE-LABEL: swap_store20:
; CHECK-P9-BE:       # %bb.0:
; CHECK-P9-BE-NEXT:    addis r3, r2, .LCPI15_0@toc@ha
; CHECK-P9-BE-NEXT:    addi r3, r3, .LCPI15_0@toc@l
; CHECK-P9-BE-NEXT:    lxv vs0, 0(r3)
; CHECK-P9-BE-NEXT:    xxperm v2, v2, vs0
; CHECK-P9-BE-NEXT:    stxv v2, 0(r7)
; CHECK-P9-BE-NEXT:    blr
  %v3 = shufflevector <8 x i16> %v1, <8 x i16> %v2, <8 x i32> <i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0>
  store <8 x i16> %v3, ptr %vp
  ret void
}

define void @swap_store21(<8 x i16> %v1, <8 x i16> %v2, ptr %vp) {
; CHECK-P8-LABEL: swap_store21:
; CHECK-P8:       # %bb.0:
; CHECK-P8-NEXT:    addis r3, r2, .LCPI16_0@toc@ha
; CHECK-P8-NEXT:    addi r3, r3, .LCPI16_0@toc@l
; CHECK-P8-NEXT:    lxvd2x vs0, 0, r3
; CHECK-P8-NEXT:    xxswapd v2, vs0
; CHECK-P8-NEXT:    vperm v2, v3, v3, v2
; CHECK-P8-NEXT:    xxswapd vs0, v2
; CHECK-P8-NEXT:    stxvd2x vs0, 0, r7
; CHECK-P8-NEXT:    blr
;
; CHECK-P9-LABEL: swap_store21:
; CHECK-P9:       # %bb.0:
; CHECK-P9-NEXT:    stxvh8x v3, 0, r7
; CHECK-P9-NEXT:    blr
;
; CHECK-P8-BE-LABEL: swap_store21:
; CHECK-P8-BE:       # %bb.0:
; CHECK-P8-BE-NEXT:    addis r3, r2, .LCPI16_0@toc@ha
; CHECK-P8-BE-NEXT:    addi r3, r3, .LCPI16_0@toc@l
; CHECK-P8-BE-NEXT:    lxvw4x v2, 0, r3
; CHECK-P8-BE-NEXT:    vperm v2, v3, v3, v2
; CHECK-P8-BE-NEXT:    stxvw4x v2, 0, r7
; CHECK-P8-BE-NEXT:    blr
;
; CHECK-P9-BE-LABEL: swap_store21:
; CHECK-P9-BE:       # %bb.0:
; CHECK-P9-BE-NEXT:    addis r3, r2, .LCPI16_0@toc@ha
; CHECK-P9-BE-NEXT:    addi r3, r3, .LCPI16_0@toc@l
; CHECK-P9-BE-NEXT:    lxv vs0, 0(r3)
; CHECK-P9-BE-NEXT:    xxperm v3, v3, vs0
; CHECK-P9-BE-NEXT:    stxv v3, 0(r7)
; CHECK-P9-BE-NEXT:    blr
  %v3 = shufflevector <8 x i16> %v1, <8 x i16> %v2, <8 x i32> <i32 15, i32 14, i32 13, i32 12, i32 11, i32 10, i32 9, i32 8>
  store <8 x i16> %v3, ptr %vp
  ret void
}

define void @swap_store30(<16 x i8> %v1, <16 x i8> %v2, ptr %vp) {
; CHECK-P8-LABEL: swap_store30:
; CHECK-P8:       # %bb.0:
; CHECK-P8-NEXT:    addis r3, r2, .LCPI17_0@toc@ha
; CHECK-P8-NEXT:    addi r3, r3, .LCPI17_0@toc@l
; CHECK-P8-NEXT:    lxvd2x vs0, 0, r3
; CHECK-P8-NEXT:    xxswapd v3, vs0
; CHECK-P8-NEXT:    vperm v2, v2, v2, v3
; CHECK-P8-NEXT:    xxswapd vs0, v2
; CHECK-P8-NEXT:    stxvd2x vs0, 0, r7
; CHECK-P8-NEXT:    blr
;
; CHECK-P9-LABEL: swap_store30:
; CHECK-P9:       # %bb.0:
; CHECK-P9-NEXT:    stxvb16x v2, 0, r7
; CHECK-P9-NEXT:    blr
;
; CHECK-P8-BE-LABEL: swap_store30:
; CHECK-P8-BE:       # %bb.0:
; CHECK-P8-BE-NEXT:    addis r3, r2, .LCPI17_0@toc@ha
; CHECK-P8-BE-NEXT:    addi r3, r3, .LCPI17_0@toc@l
; CHECK-P8-BE-NEXT:    lxvw4x v3, 0, r3
; CHECK-P8-BE-NEXT:    vperm v2, v2, v2, v3
; CHECK-P8-BE-NEXT:    stxvw4x v2, 0, r7
; CHECK-P8-BE-NEXT:    blr
;
; CHECK-P9-BE-LABEL: swap_store30:
; CHECK-P9-BE:       # %bb.0:
; CHECK-P9-BE-NEXT:    xxbrq vs0, v2
; CHECK-P9-BE-NEXT:    stxv vs0, 0(r7)
; CHECK-P9-BE-NEXT:    blr
  %v3 = shufflevector <16 x i8> %v1, <16 x i8> %v2, <16 x i32> <i32 15, i32 14, i32 13, i32 12, i32 11, i32 10, i32 9, i32 8, i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0>
  store <16 x i8> %v3, ptr %vp
  ret void
}

define void @swap_store31(<16 x i8> %v1, <16 x i8> %v2, ptr %vp) {
; CHECK-P8-LABEL: swap_store31:
; CHECK-P8:       # %bb.0:
; CHECK-P8-NEXT:    addis r3, r2, .LCPI18_0@toc@ha
; CHECK-P8-NEXT:    addi r3, r3, .LCPI18_0@toc@l
; CHECK-P8-NEXT:    lxvd2x vs0, 0, r3
; CHECK-P8-NEXT:    xxswapd v2, vs0
; CHECK-P8-NEXT:    vperm v2, v3, v3, v2
; CHECK-P8-NEXT:    xxswapd vs0, v2
; CHECK-P8-NEXT:    stxvd2x vs0, 0, r7
; CHECK-P8-NEXT:    blr
;
; CHECK-P9-LABEL: swap_store31:
; CHECK-P9:       # %bb.0:
; CHECK-P9-NEXT:    stxvb16x v3, 0, r7
; CHECK-P9-NEXT:    blr
;
; CHECK-P8-BE-LABEL: swap_store31:
; CHECK-P8-BE:       # %bb.0:
; CHECK-P8-BE-NEXT:    addis r3, r2, .LCPI18_0@toc@ha
; CHECK-P8-BE-NEXT:    addi r3, r3, .LCPI18_0@toc@l
; CHECK-P8-BE-NEXT:    lxvw4x v2, 0, r3
; CHECK-P8-BE-NEXT:    vperm v2, v3, v3, v2
; CHECK-P8-BE-NEXT:    stxvw4x v2, 0, r7
; CHECK-P8-BE-NEXT:    blr
;
; CHECK-P9-BE-LABEL: swap_store31:
; CHECK-P9-BE:       # %bb.0:
; CHECK-P9-BE-NEXT:    xxbrq vs0, v3
; CHECK-P9-BE-NEXT:    stxv vs0, 0(r7)
; CHECK-P9-BE-NEXT:    blr
  %v3 = shufflevector <16 x i8> %v1, <16 x i8> %v2, <16 x i32> <i32 31, i32 30, i32 29, i32 28, i32 27, i32 26, i32 25, i32 24, i32 23, i32 22, i32 21, i32 20, i32 19, i32 18, i32 17, i32 16>
  store <16 x i8> %v3, ptr %vp
  ret void
}

define void @swap_store40(<2 x double> %v1, <2 x double> %v2, ptr %vp) {
; CHECK-P8-LABEL: swap_store40:
; CHECK-P8:       # %bb.0:
; CHECK-P8-NEXT:    stxvd2x v2, 0, r7
; CHECK-P8-NEXT:    blr
;
; CHECK-P9-LABEL: swap_store40:
; CHECK-P9:       # %bb.0:
; CHECK-P9-NEXT:    stxvd2x v2, 0, r7
; CHECK-P9-NEXT:    blr
;
; CHECK-P8-BE-LABEL: swap_store40:
; CHECK-P8-BE:       # %bb.0:
; CHECK-P8-BE-NEXT:    xxswapd vs0, v2
; CHECK-P8-BE-NEXT:    stxvd2x vs0, 0, r7
; CHECK-P8-BE-NEXT:    blr
;
; CHECK-P9-BE-LABEL: swap_store40:
; CHECK-P9-BE:       # %bb.0:
; CHECK-P9-BE-NEXT:    xxswapd vs0, v2
; CHECK-P9-BE-NEXT:    stxv vs0, 0(r7)
; CHECK-P9-BE-NEXT:    blr
  %v3 = shufflevector <2 x double> %v1, <2 x double> %v2, <2 x i32> <i32 1, i32 0>
  store <2 x double> %v3, ptr %vp
  ret void
}

define void @swap_store41(<2 x double> %v1, <2 x double> %v2, ptr %vp) {
; CHECK-P8-LABEL: swap_store41:
; CHECK-P8:       # %bb.0:
; CHECK-P8-NEXT:    stxvd2x v3, 0, r7
; CHECK-P8-NEXT:    blr
;
; CHECK-P9-LABEL: swap_store41:
; CHECK-P9:       # %bb.0:
; CHECK-P9-NEXT:    stxvd2x v3, 0, r7
; CHECK-P9-NEXT:    blr
;
; CHECK-P8-BE-LABEL: swap_store41:
; CHECK-P8-BE:       # %bb.0:
; CHECK-P8-BE-NEXT:    xxswapd vs0, v3
; CHECK-P8-BE-NEXT:    stxvd2x vs0, 0, r7
; CHECK-P8-BE-NEXT:    blr
;
; CHECK-P9-BE-LABEL: swap_store41:
; CHECK-P9-BE:       # %bb.0:
; CHECK-P9-BE-NEXT:    xxswapd vs0, v3
; CHECK-P9-BE-NEXT:    stxv vs0, 0(r7)
; CHECK-P9-BE-NEXT:    blr
  %v3 = shufflevector <2 x double> %v1, <2 x double> %v2, <2 x i32> <i32 3, i32 2>
  store <2 x double> %v3, ptr %vp
  ret void
}

define void @swap_store50(<4 x float> %v1, <4 x float> %v2, ptr %vp) {
; CHECK-P8-LABEL: swap_store50:
; CHECK-P8:       # %bb.0:
; CHECK-P8-NEXT:    addis r3, r2, .LCPI21_0@toc@ha
; CHECK-P8-NEXT:    addi r3, r3, .LCPI21_0@toc@l
; CHECK-P8-NEXT:    lxvd2x vs0, 0, r3
; CHECK-P8-NEXT:    xxswapd v3, vs0
; CHECK-P8-NEXT:    vperm v2, v2, v2, v3
; CHECK-P8-NEXT:    xxswapd vs0, v2
; CHECK-P8-NEXT:    stxvd2x vs0, 0, r7
; CHECK-P8-NEXT:    blr
;
; CHECK-P9-LABEL: swap_store50:
; CHECK-P9:       # %bb.0:
; CHECK-P9-NEXT:    stxvw4x v2, 0, r7
; CHECK-P9-NEXT:    blr
;
; CHECK-P8-BE-LABEL: swap_store50:
; CHECK-P8-BE:       # %bb.0:
; CHECK-P8-BE-NEXT:    addis r3, r2, .LCPI21_0@toc@ha
; CHECK-P8-BE-NEXT:    addi r3, r3, .LCPI21_0@toc@l
; CHECK-P8-BE-NEXT:    lxvw4x v3, 0, r3
; CHECK-P8-BE-NEXT:    vperm v2, v2, v2, v3
; CHECK-P8-BE-NEXT:    stxvw4x v2, 0, r7
; CHECK-P8-BE-NEXT:    blr
;
; CHECK-P9-BE-LABEL: swap_store50:
; CHECK-P9-BE:       # %bb.0:
; CHECK-P9-BE-NEXT:    addis r3, r2, .LCPI21_0@toc@ha
; CHECK-P9-BE-NEXT:    addi r3, r3, .LCPI21_0@toc@l
; CHECK-P9-BE-NEXT:    lxv vs0, 0(r3)
; CHECK-P9-BE-NEXT:    xxperm v2, v2, vs0
; CHECK-P9-BE-NEXT:    stxv v2, 0(r7)
; CHECK-P9-BE-NEXT:    blr
  %v3 = shufflevector <4 x float> %v1, <4 x float> %v2, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
  store <4 x float> %v3, ptr %vp
  ret void
}

define void @swap_store51(<4 x float> %v1, <4 x float> %v2, ptr %vp) {
; CHECK-P8-LABEL: swap_store51:
; CHECK-P8:       # %bb.0:
; CHECK-P8-NEXT:    addis r3, r2, .LCPI22_0@toc@ha
; CHECK-P8-NEXT:    addi r3, r3, .LCPI22_0@toc@l
; CHECK-P8-NEXT:    lxvd2x vs0, 0, r3
; CHECK-P8-NEXT:    xxswapd v2, vs0
; CHECK-P8-NEXT:    vperm v2, v3, v3, v2
; CHECK-P8-NEXT:    xxswapd vs0, v2
; CHECK-P8-NEXT:    stxvd2x vs0, 0, r7
; CHECK-P8-NEXT:    blr
;
; CHECK-P9-LABEL: swap_store51:
; CHECK-P9:       # %bb.0:
; CHECK-P9-NEXT:    stxvw4x v3, 0, r7
; CHECK-P9-NEXT:    blr
;
; CHECK-P8-BE-LABEL: swap_store51:
; CHECK-P8-BE:       # %bb.0:
; CHECK-P8-BE-NEXT:    addis r3, r2, .LCPI22_0@toc@ha
; CHECK-P8-BE-NEXT:    addi r3, r3, .LCPI22_0@toc@l
; CHECK-P8-BE-NEXT:    lxvw4x v2, 0, r3
; CHECK-P8-BE-NEXT:    vperm v2, v3, v3, v2
; CHECK-P8-BE-NEXT:    stxvw4x v2, 0, r7
; CHECK-P8-BE-NEXT:    blr
;
; CHECK-P9-BE-LABEL: swap_store51:
; CHECK-P9-BE:       # %bb.0:
; CHECK-P9-BE-NEXT:    addis r3, r2, .LCPI22_0@toc@ha
; CHECK-P9-BE-NEXT:    addi r3, r3, .LCPI22_0@toc@l
; CHECK-P9-BE-NEXT:    lxv vs0, 0(r3)
; CHECK-P9-BE-NEXT:    xxperm v3, v3, vs0
; CHECK-P9-BE-NEXT:    stxv v3, 0(r7)
; CHECK-P9-BE-NEXT:    blr
  %v3 = shufflevector <4 x float> %v1, <4 x float> %v2, <4 x i32> <i32 7, i32 6, i32 5, i32 4>
  store <4 x float> %v3, ptr %vp
  ret void
}
