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

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

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

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

define <2 x double> @testi0(<2 x double>* %p1, double* %p2) {
; CHECK-LABEL: testi0:
; CHECK:       # %bb.0:
; CHECK-NEXT:    lxvd2x vs0, 0, r3
; CHECK-NEXT:    lfdx f1, 0, r4
; CHECK-NEXT:    xxswapd vs0, vs0
; CHECK-NEXT:    xxmrghd v2, vs0, vs1
; CHECK-NEXT:    blr
;
; CHECK-P8-BE-LABEL: testi0:
; CHECK-P8-BE:       # %bb.0:
; CHECK-P8-BE-NEXT:    lxvd2x vs0, 0, r3
; CHECK-P8-BE-NEXT:    lfdx f1, 0, r4
; CHECK-P8-BE-NEXT:    xxpermdi v2, vs1, vs0, 1
; CHECK-P8-BE-NEXT:    blr
;
; CHECK-P9-VECTOR-LABEL: testi0:
; CHECK-P9-VECTOR:       # %bb.0:
; CHECK-P9-VECTOR-NEXT:    lxvd2x vs0, 0, r3
; CHECK-P9-VECTOR-NEXT:    lfdx f1, 0, r4
; CHECK-P9-VECTOR-NEXT:    xxswapd vs0, vs0
; CHECK-P9-VECTOR-NEXT:    xxmrghd v2, vs0, vs1
; CHECK-P9-VECTOR-NEXT:    blr
;
; CHECK-P9-LABEL: testi0:
; CHECK-P9:       # %bb.0:
; CHECK-P9-NEXT:    lxv vs0, 0(r3)
; CHECK-P9-NEXT:    lfd f1, 0(r4)
; CHECK-P9-NEXT:    xxmrghd v2, vs0, vs1
; CHECK-P9-NEXT:    blr
  %v = load <2 x double>, <2 x double>* %p1
  %s = load double, double* %p2
  %r = insertelement <2 x double> %v, double %s, i32 0
  ret <2 x double> %r


}

define <2 x double> @testi1(<2 x double>* %p1, double* %p2) {
; CHECK-LABEL: testi1:
; CHECK:       # %bb.0:
; CHECK-NEXT:    lxvd2x vs0, 0, r3
; CHECK-NEXT:    lfdx f1, 0, r4
; CHECK-NEXT:    xxswapd vs0, vs0
; CHECK-NEXT:    xxpermdi v2, vs1, vs0, 1
; CHECK-NEXT:    blr
;
; CHECK-P8-BE-LABEL: testi1:
; CHECK-P8-BE:       # %bb.0:
; CHECK-P8-BE-NEXT:    lxvd2x vs0, 0, r3
; CHECK-P8-BE-NEXT:    lfdx f1, 0, r4
; CHECK-P8-BE-NEXT:    xxmrghd v2, vs0, vs1
; CHECK-P8-BE-NEXT:    blr
;
; CHECK-P9-VECTOR-LABEL: testi1:
; CHECK-P9-VECTOR:       # %bb.0:
; CHECK-P9-VECTOR-NEXT:    lxvd2x vs0, 0, r3
; CHECK-P9-VECTOR-NEXT:    lfdx f1, 0, r4
; CHECK-P9-VECTOR-NEXT:    xxswapd vs0, vs0
; CHECK-P9-VECTOR-NEXT:    xxpermdi v2, vs1, vs0, 1
; CHECK-P9-VECTOR-NEXT:    blr
;
; CHECK-P9-LABEL: testi1:
; CHECK-P9:       # %bb.0:
; CHECK-P9-NEXT:    lxv vs0, 0(r3)
; CHECK-P9-NEXT:    lfd f1, 0(r4)
; CHECK-P9-NEXT:    xxpermdi v2, vs1, vs0, 1
; CHECK-P9-NEXT:    blr
  %v = load <2 x double>, <2 x double>* %p1
  %s = load double, double* %p2
  %r = insertelement <2 x double> %v, double %s, i32 1
  ret <2 x double> %r


}

define double @teste0(<2 x double>* %p1) {
; CHECK-LABEL: teste0:
; CHECK:       # %bb.0:
; CHECK-NEXT:    lxvd2x vs1, 0, r3
; CHECK-NEXT:    # kill: def $f1 killed $f1 killed $vsl1
; CHECK-NEXT:    blr
;
; CHECK-P8-BE-LABEL: teste0:
; CHECK-P8-BE:       # %bb.0:
; CHECK-P8-BE-NEXT:    lfdx f1, 0, r3
; CHECK-P8-BE-NEXT:    blr
;
; CHECK-P9-VECTOR-LABEL: teste0:
; CHECK-P9-VECTOR:       # %bb.0:
; CHECK-P9-VECTOR-NEXT:    lxvd2x vs1, 0, r3
; CHECK-P9-VECTOR-NEXT:    # kill: def $f1 killed $f1 killed $vsl1
; CHECK-P9-VECTOR-NEXT:    blr
;
; CHECK-P9-LABEL: teste0:
; CHECK-P9:       # %bb.0:
; CHECK-P9-NEXT:    lfd f1, 0(r3)
; CHECK-P9-NEXT:    blr
  %v = load <2 x double>, <2 x double>* %p1
  %r = extractelement <2 x double> %v, i32 0
  ret double %r


}

define double @teste1(<2 x double>* %p1) {
; CHECK-LABEL: teste1:
; CHECK:       # %bb.0:
; CHECK-NEXT:    lxvd2x vs0, 0, r3
; CHECK-NEXT:    xxswapd vs1, vs0
; CHECK-NEXT:    # kill: def $f1 killed $f1 killed $vsl1
; CHECK-NEXT:    blr
;
; CHECK-P8-BE-LABEL: teste1:
; CHECK-P8-BE:       # %bb.0:
; CHECK-P8-BE-NEXT:    lfd f1, 8(r3)
; CHECK-P8-BE-NEXT:    blr
;
; CHECK-P9-VECTOR-LABEL: teste1:
; CHECK-P9-VECTOR:       # %bb.0:
; CHECK-P9-VECTOR-NEXT:    lxvd2x vs0, 0, r3
; CHECK-P9-VECTOR-NEXT:    xxswapd vs1, vs0
; CHECK-P9-VECTOR-NEXT:    # kill: def $f1 killed $f1 killed $vsl1
; CHECK-P9-VECTOR-NEXT:    blr
;
; CHECK-P9-LABEL: teste1:
; CHECK-P9:       # %bb.0:
; CHECK-P9-NEXT:    lfd f1, 8(r3)
; CHECK-P9-NEXT:    blr
  %v = load <2 x double>, <2 x double>* %p1
  %r = extractelement <2 x double> %v, i32 1
  ret double %r


}
