; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu \
; RUN:   -mcpu=pwr10 -ppc-asm-full-reg-names \
; RUN:   -ppc-vsr-nums-as-vr < %s | FileCheck %s
; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu \
; RUN:   -mcpu=pwr10 -ppc-asm-full-reg-names \
; RUN:   -ppc-vsr-nums-as-vr < %s | FileCheck %s --check-prefix=CHECK-BE
; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu \
; RUN:   -mcpu=pwr9 -ppc-asm-full-reg-names \
; RUN:   -ppc-vsr-nums-as-vr < %s | FileCheck %s --check-prefix=CHECK-P9
; RUN: llc -mcpu=pwr8 -verify-machineinstrs -ppc-vsr-nums-as-vr \
; RUN:   -ppc-asm-full-reg-names -mtriple=powerpc64-ibm-aix-xcoff < %s | \
; RUN: FileCheck %s --check-prefixes=AIX-P8,AIX-P8-64
; RUN: llc -mcpu=pwr8 -verify-machineinstrs -ppc-vsr-nums-as-vr \
; RUN:   -ppc-asm-full-reg-names -mtriple=powerpc-ibm-aix-xcoff < %s | \
; RUN: FileCheck %s --check-prefixes=AIX-P8,AIX-P8-32

; Byte indexed

define <16 x i8> @testByte(<16 x i8> %a, i64 %b, i64 %idx) {
; CHECK-LABEL: testByte:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vinsbrx v2, r6, r5
; CHECK-NEXT:    blr
;
; CHECK-BE-LABEL: testByte:
; CHECK-BE:       # %bb.0: # %entry
; CHECK-BE-NEXT:    vinsblx v2, r6, r5
; CHECK-BE-NEXT:    blr
;
; CHECK-P9-LABEL: testByte:
; CHECK-P9:       # %bb.0: # %entry
; CHECK-P9-NEXT:    addi r4, r1, -16
; CHECK-P9-NEXT:    clrldi r3, r6, 60
; CHECK-P9-NEXT:    stxv v2, -16(r1)
; CHECK-P9-NEXT:    stbx r5, r4, r3
; CHECK-P9-NEXT:    lxv v2, -16(r1)
; CHECK-P9-NEXT:    blr
;
; AIX-P8-64-LABEL: testByte:
; AIX-P8-64:       # %bb.0: # %entry
; AIX-P8-64-NEXT:    addi r5, r1, -16
; AIX-P8-64-NEXT:    clrldi r4, r4, 60
; AIX-P8-64-NEXT:    stxvw4x v2, 0, r5
; AIX-P8-64-NEXT:    stbx r3, r5, r4
; AIX-P8-64-NEXT:    lxvw4x v2, 0, r5
; AIX-P8-64-NEXT:    blr
;
; AIX-P8-32-LABEL: testByte:
; AIX-P8-32:       # %bb.0: # %entry
; AIX-P8-32-NEXT:    addi r3, r1, -16
; AIX-P8-32-NEXT:    clrlwi r5, r6, 28
; AIX-P8-32-NEXT:    stxvw4x v2, 0, r3
; AIX-P8-32-NEXT:    stbx r4, r3, r5
; AIX-P8-32-NEXT:    lxvw4x v2, 0, r3
; AIX-P8-32-NEXT:    blr
entry:
  %conv = trunc i64 %b to i8
  %vecins = insertelement <16 x i8> %a, i8 %conv, i64 %idx
  ret <16 x i8> %vecins
}

; Halfword indexed

define <8 x i16> @testHalf(<8 x i16> %a, i64 %b, i64 %idx) {
; CHECK-LABEL: testHalf:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    slwi r3, r6, 1
; CHECK-NEXT:    vinshrx v2, r3, r5
; CHECK-NEXT:    blr
;
; CHECK-BE-LABEL: testHalf:
; CHECK-BE:       # %bb.0: # %entry
; CHECK-BE-NEXT:    slwi r3, r6, 1
; CHECK-BE-NEXT:    vinshlx v2, r3, r5
; CHECK-BE-NEXT:    blr
;
; CHECK-P9-LABEL: testHalf:
; CHECK-P9:       # %bb.0: # %entry
; CHECK-P9-NEXT:    addi r4, r1, -16
; CHECK-P9-NEXT:    rlwinm r3, r6, 1, 28, 30
; CHECK-P9-NEXT:    stxv v2, -16(r1)
; CHECK-P9-NEXT:    sthx r5, r4, r3
; CHECK-P9-NEXT:    lxv v2, -16(r1)
; CHECK-P9-NEXT:    blr
;
; AIX-P8-64-LABEL: testHalf:
; AIX-P8-64:       # %bb.0: # %entry
; AIX-P8-64-NEXT:    addi r5, r1, -16
; AIX-P8-64-NEXT:    rlwinm r4, r4, 1, 28, 30
; AIX-P8-64-NEXT:    stxvw4x v2, 0, r5
; AIX-P8-64-NEXT:    sthx r3, r5, r4
; AIX-P8-64-NEXT:    lxvw4x v2, 0, r5
; AIX-P8-64-NEXT:    blr
;
; AIX-P8-32-LABEL: testHalf:
; AIX-P8-32:       # %bb.0: # %entry
; AIX-P8-32-NEXT:    addi r3, r1, -16
; AIX-P8-32-NEXT:    rlwinm r5, r6, 1, 28, 30
; AIX-P8-32-NEXT:    stxvw4x v2, 0, r3
; AIX-P8-32-NEXT:    sthx r4, r3, r5
; AIX-P8-32-NEXT:    lxvw4x v2, 0, r3
; AIX-P8-32-NEXT:    blr
entry:
  %conv = trunc i64 %b to i16
  %vecins = insertelement <8 x i16> %a, i16 %conv, i64 %idx
  ret <8 x i16> %vecins
}

; Word indexed

define <4 x i32> @testWord(<4 x i32> %a, i64 %b, i64 %idx) {
; CHECK-LABEL: testWord:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    slwi r3, r6, 2
; CHECK-NEXT:    vinswrx v2, r3, r5
; CHECK-NEXT:    blr
;
; CHECK-BE-LABEL: testWord:
; CHECK-BE:       # %bb.0: # %entry
; CHECK-BE-NEXT:    slwi r3, r6, 2
; CHECK-BE-NEXT:    vinswlx v2, r3, r5
; CHECK-BE-NEXT:    blr
;
; CHECK-P9-LABEL: testWord:
; CHECK-P9:       # %bb.0: # %entry
; CHECK-P9-NEXT:    addi r4, r1, -16
; CHECK-P9-NEXT:    rlwinm r3, r6, 2, 28, 29
; CHECK-P9-NEXT:    stxv v2, -16(r1)
; CHECK-P9-NEXT:    stwx r5, r4, r3
; CHECK-P9-NEXT:    lxv v2, -16(r1)
; CHECK-P9-NEXT:    blr
;
; AIX-P8-64-LABEL: testWord:
; AIX-P8-64:       # %bb.0: # %entry
; AIX-P8-64-NEXT:    addi r5, r1, -16
; AIX-P8-64-NEXT:    rlwinm r4, r4, 2, 28, 29
; AIX-P8-64-NEXT:    stxvw4x v2, 0, r5
; AIX-P8-64-NEXT:    stwx r3, r5, r4
; AIX-P8-64-NEXT:    lxvw4x v2, 0, r5
; AIX-P8-64-NEXT:    blr
;
; AIX-P8-32-LABEL: testWord:
; AIX-P8-32:       # %bb.0: # %entry
; AIX-P8-32-NEXT:    addi r3, r1, -16
; AIX-P8-32-NEXT:    rlwinm r5, r6, 2, 28, 29
; AIX-P8-32-NEXT:    stxvw4x v2, 0, r3
; AIX-P8-32-NEXT:    stwx r4, r3, r5
; AIX-P8-32-NEXT:    lxvw4x v2, 0, r3
; AIX-P8-32-NEXT:    blr
entry:
  %conv = trunc i64 %b to i32
  %vecins = insertelement <4 x i32> %a, i32 %conv, i64 %idx
  ret <4 x i32> %vecins
}

; Word immediate

define <4 x i32> @testWordImm(<4 x i32> %a, i64 %b) {
; CHECK-LABEL: testWordImm:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vinsw v2, r5, 8
; CHECK-NEXT:    vinsw v2, r5, 0
; CHECK-NEXT:    blr
;
; CHECK-BE-LABEL: testWordImm:
; CHECK-BE:       # %bb.0: # %entry
; CHECK-BE-NEXT:    vinsw v2, r5, 4
; CHECK-BE-NEXT:    vinsw v2, r5, 12
; CHECK-BE-NEXT:    blr
;
; CHECK-P9-LABEL: testWordImm:
; CHECK-P9:       # %bb.0: # %entry
; CHECK-P9-NEXT:    mtfprwz f0, r5
; CHECK-P9-NEXT:    xxinsertw v2, vs0, 4
; CHECK-P9-NEXT:    xxinsertw v2, vs0, 12
; CHECK-P9-NEXT:    blr
;
; AIX-P8-64-LABEL: testWordImm:
; AIX-P8-64:       # %bb.0: # %entry
; AIX-P8-64-NEXT:    ld r4, L..C0(r2) # %const.0
; AIX-P8-64-NEXT:    mtvsrwz v4, r3
; AIX-P8-64-NEXT:    ld r3, L..C1(r2) # %const.1
; AIX-P8-64-NEXT:    lxvw4x v3, 0, r4
; AIX-P8-64-NEXT:    vperm v2, v2, v4, v3
; AIX-P8-64-NEXT:    lxvw4x v3, 0, r3
; AIX-P8-64-NEXT:    vperm v2, v2, v4, v3
; AIX-P8-64-NEXT:    blr
;
; AIX-P8-32-LABEL: testWordImm:
; AIX-P8-32:       # %bb.0: # %entry
; AIX-P8-32-NEXT:    lwz r3, L..C0(r2) # %const.0
; AIX-P8-32-NEXT:    stw r4, -16(r1)
; AIX-P8-32-NEXT:    addi r4, r1, -16
; AIX-P8-32-NEXT:    lxvw4x v4, 0, r4
; AIX-P8-32-NEXT:    lxvw4x v3, 0, r3
; AIX-P8-32-NEXT:    lwz r3, L..C1(r2) # %const.1
; AIX-P8-32-NEXT:    vperm v2, v2, v4, v3
; AIX-P8-32-NEXT:    lxvw4x v3, 0, r3
; AIX-P8-32-NEXT:    vperm v2, v2, v4, v3
; AIX-P8-32-NEXT:    blr
entry:
  %conv = trunc i64 %b to i32
  %vecins = insertelement <4 x i32> %a, i32 %conv, i32 1
  %vecins2 = insertelement <4 x i32> %vecins, i32 %conv, i32 3
  ret <4 x i32> %vecins2
}

; Doubleword indexed

define <2 x i64> @testDoubleword(<2 x i64> %a, i64 %b, i64 %idx) {
; CHECK-LABEL: testDoubleword:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    rlwinm r3, r6, 3, 0, 28
; CHECK-NEXT:    vinsdrx v2, r3, r5
; CHECK-NEXT:    blr
;
; CHECK-BE-LABEL: testDoubleword:
; CHECK-BE:       # %bb.0: # %entry
; CHECK-BE-NEXT:    rlwinm r3, r6, 3, 0, 28
; CHECK-BE-NEXT:    vinsdlx v2, r3, r5
; CHECK-BE-NEXT:    blr
;
; CHECK-P9-LABEL: testDoubleword:
; CHECK-P9:       # %bb.0: # %entry
; CHECK-P9-NEXT:    addi r4, r1, -16
; CHECK-P9-NEXT:    rlwinm r3, r6, 3, 28, 28
; CHECK-P9-NEXT:    stxv v2, -16(r1)
; CHECK-P9-NEXT:    stdx r5, r4, r3
; CHECK-P9-NEXT:    lxv v2, -16(r1)
; CHECK-P9-NEXT:    blr
;
; AIX-P8-64-LABEL: testDoubleword:
; AIX-P8-64:       # %bb.0: # %entry
; AIX-P8-64-NEXT:    addi r5, r1, -16
; AIX-P8-64-NEXT:    rlwinm r4, r4, 3, 28, 28
; AIX-P8-64-NEXT:    stxvd2x v2, 0, r5
; AIX-P8-64-NEXT:    stdx r3, r5, r4
; AIX-P8-64-NEXT:    lxvd2x v2, 0, r5
; AIX-P8-64-NEXT:    blr
;
; AIX-P8-32-LABEL: testDoubleword:
; AIX-P8-32:       # %bb.0: # %entry
; AIX-P8-32-NEXT:    add r6, r6, r6
; AIX-P8-32-NEXT:    addi r5, r1, -32
; AIX-P8-32-NEXT:    rlwinm r7, r6, 2, 28, 29
; AIX-P8-32-NEXT:    stxvw4x v2, 0, r5
; AIX-P8-32-NEXT:    stwx r3, r5, r7
; AIX-P8-32-NEXT:    addi r3, r6, 1
; AIX-P8-32-NEXT:    lxvw4x vs0, 0, r5
; AIX-P8-32-NEXT:    addi r5, r1, -16
; AIX-P8-32-NEXT:    rlwinm r3, r3, 2, 28, 29
; AIX-P8-32-NEXT:    stxvw4x vs0, 0, r5
; AIX-P8-32-NEXT:    stwx r4, r5, r3
; AIX-P8-32-NEXT:    lxvw4x v2, 0, r5
; AIX-P8-32-NEXT:    blr
entry:
  %vecins = insertelement <2 x i64> %a, i64 %b, i64 %idx
  ret <2 x i64> %vecins
}

; Doubleword immediate

define <2 x i64> @testDoublewordImm(<2 x i64> %a, i64 %b) {
; CHECK-LABEL: testDoublewordImm:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vinsd v2, r5, 0
; CHECK-NEXT:    blr
;
; CHECK-BE-LABEL: testDoublewordImm:
; CHECK-BE:       # %bb.0: # %entry
; CHECK-BE-NEXT:    vinsd v2, r5, 8
; CHECK-BE-NEXT:    blr
;
; CHECK-P9-LABEL: testDoublewordImm:
; CHECK-P9:       # %bb.0: # %entry
; CHECK-P9-NEXT:    mtfprd f0, r5
; CHECK-P9-NEXT:    xxmrghd v2, v2, vs0
; CHECK-P9-NEXT:    blr
;
; AIX-P8-64-LABEL: testDoublewordImm:
; AIX-P8-64:       # %bb.0: # %entry
; AIX-P8-64-NEXT:    mtfprd f0, r3
; AIX-P8-64-NEXT:    xxmrghd v2, v2, vs0
; AIX-P8-64-NEXT:    blr
;
; AIX-P8-32-LABEL: testDoublewordImm:
; AIX-P8-32:       # %bb.0: # %entry
; AIX-P8-32-NEXT:    lwz r5, L..C2(r2) # %const.0
; AIX-P8-32-NEXT:    stw r3, -16(r1)
; AIX-P8-32-NEXT:    stw r4, -32(r1)
; AIX-P8-32-NEXT:    addi r3, r1, -16
; AIX-P8-32-NEXT:    addi r4, r1, -32
; AIX-P8-32-NEXT:    lxvw4x v4, 0, r3
; AIX-P8-32-NEXT:    lwz r3, L..C3(r2) # %const.1
; AIX-P8-32-NEXT:    lxvw4x v3, 0, r5
; AIX-P8-32-NEXT:    vperm v2, v2, v4, v3
; AIX-P8-32-NEXT:    lxvw4x v3, 0, r3
; AIX-P8-32-NEXT:    lxvw4x v4, 0, r4
; AIX-P8-32-NEXT:    vperm v2, v2, v4, v3
; AIX-P8-32-NEXT:    blr
entry:
  %vecins = insertelement <2 x i64> %a, i64 %b, i32 1
  ret <2 x i64> %vecins
}

define <2 x i64> @testDoublewordImm2(<2 x i64> %a, i64 %b) {
; CHECK-LABEL: testDoublewordImm2:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vinsd v2, r5, 8
; CHECK-NEXT:    blr
;
; CHECK-BE-LABEL: testDoublewordImm2:
; CHECK-BE:       # %bb.0: # %entry
; CHECK-BE-NEXT:    vinsd v2, r5, 0
; CHECK-BE-NEXT:    blr
;
; CHECK-P9-LABEL: testDoublewordImm2:
; CHECK-P9:       # %bb.0: # %entry
; CHECK-P9-NEXT:    mtfprd f0, r5
; CHECK-P9-NEXT:    xxpermdi v2, vs0, v2, 1
; CHECK-P9-NEXT:    blr
;
; AIX-P8-64-LABEL: testDoublewordImm2:
; AIX-P8-64:       # %bb.0: # %entry
; AIX-P8-64-NEXT:    mtfprd f0, r3
; AIX-P8-64-NEXT:    xxpermdi v2, vs0, v2, 1
; AIX-P8-64-NEXT:    blr
;
; AIX-P8-32-LABEL: testDoublewordImm2:
; AIX-P8-32:       # %bb.0: # %entry
; AIX-P8-32-NEXT:    lwz r5, L..C4(r2) # %const.0
; AIX-P8-32-NEXT:    stw r3, -16(r1)
; AIX-P8-32-NEXT:    stw r4, -32(r1)
; AIX-P8-32-NEXT:    addi r3, r1, -16
; AIX-P8-32-NEXT:    addi r4, r1, -32
; AIX-P8-32-NEXT:    lxvw4x v4, 0, r3
; AIX-P8-32-NEXT:    lwz r3, L..C5(r2) # %const.1
; AIX-P8-32-NEXT:    lxvw4x v3, 0, r5
; AIX-P8-32-NEXT:    vperm v2, v4, v2, v3
; AIX-P8-32-NEXT:    lxvw4x v3, 0, r3
; AIX-P8-32-NEXT:    lxvw4x v4, 0, r4
; AIX-P8-32-NEXT:    vperm v2, v2, v4, v3
; AIX-P8-32-NEXT:    blr
entry:
  %vecins = insertelement <2 x i64> %a, i64 %b, i32 0
  ret <2 x i64> %vecins
}

; Float indexed

define <4 x float> @testFloat1(<4 x float> %a, float %b, i32 zeroext %idx1) {
; CHECK-LABEL: testFloat1:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    xscvdpspn v3, f1
; CHECK-NEXT:    extsw r3, r6
; CHECK-NEXT:    slwi r3, r3, 2
; CHECK-NEXT:    vinswvrx v2, r3, v3
; CHECK-NEXT:    blr
;
; CHECK-BE-LABEL: testFloat1:
; CHECK-BE:       # %bb.0: # %entry
; CHECK-BE-NEXT:    xscvdpspn v3, f1
; CHECK-BE-NEXT:    extsw r3, r6
; CHECK-BE-NEXT:    slwi r3, r3, 2
; CHECK-BE-NEXT:    vinswvlx v2, r3, v3
; CHECK-BE-NEXT:    blr
;
; CHECK-P9-LABEL: testFloat1:
; CHECK-P9:       # %bb.0: # %entry
; CHECK-P9-NEXT:    addi r4, r1, -16
; CHECK-P9-NEXT:    rlwinm r3, r6, 2, 28, 29
; CHECK-P9-NEXT:    stxv v2, -16(r1)
; CHECK-P9-NEXT:    stfsx f1, r4, r3
; CHECK-P9-NEXT:    lxv v2, -16(r1)
; CHECK-P9-NEXT:    blr
;
; AIX-P8-LABEL: testFloat1:
; AIX-P8:       # %bb.0: # %entry
; AIX-P8-NEXT:    addi r3, r1, -16
; AIX-P8-NEXT:    rlwinm r4, r4, 2, 28, 29
; AIX-P8-NEXT:    stxvw4x v2, 0, r3
; AIX-P8-NEXT:    stfsx f1, r3, r4
; AIX-P8-NEXT:    lxvw4x v2, 0, r3
; AIX-P8-NEXT:    blr
entry:
  %vecins = insertelement <4 x float> %a, float %b, i32 %idx1
  ret <4 x float> %vecins
}

define <4 x float> @testFloat2(<4 x float> %a, i8* %b, i32 zeroext %idx1, i32 zeroext %idx2) {
; CHECK-LABEL: testFloat2:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    lwz r3, 0(r5)
; CHECK-NEXT:    extsw r4, r6
; CHECK-NEXT:    slwi r4, r4, 2
; CHECK-NEXT:    vinswrx v2, r4, r3
; CHECK-NEXT:    lwz r3, 1(r5)
; CHECK-NEXT:    extsw r4, r7
; CHECK-NEXT:    slwi r4, r4, 2
; CHECK-NEXT:    vinswrx v2, r4, r3
; CHECK-NEXT:    blr
;
; CHECK-BE-LABEL: testFloat2:
; CHECK-BE:       # %bb.0: # %entry
; CHECK-BE-NEXT:    lwz r3, 0(r5)
; CHECK-BE-NEXT:    extsw r4, r6
; CHECK-BE-NEXT:    slwi r4, r4, 2
; CHECK-BE-NEXT:    vinswlx v2, r4, r3
; CHECK-BE-NEXT:    lwz r3, 1(r5)
; CHECK-BE-NEXT:    extsw r4, r7
; CHECK-BE-NEXT:    slwi r4, r4, 2
; CHECK-BE-NEXT:    vinswlx v2, r4, r3
; CHECK-BE-NEXT:    blr
;
; CHECK-P9-LABEL: testFloat2:
; CHECK-P9:       # %bb.0: # %entry
; CHECK-P9-NEXT:    lwz r3, 0(r5)
; CHECK-P9-NEXT:    rlwinm r4, r6, 2, 28, 29
; CHECK-P9-NEXT:    addi r6, r1, -16
; CHECK-P9-NEXT:    stxv v2, -16(r1)
; CHECK-P9-NEXT:    stwx r3, r6, r4
; CHECK-P9-NEXT:    rlwinm r4, r7, 2, 28, 29
; CHECK-P9-NEXT:    lxv vs0, -16(r1)
; CHECK-P9-NEXT:    lwz r3, 1(r5)
; CHECK-P9-NEXT:    addi r5, r1, -32
; CHECK-P9-NEXT:    stxv vs0, -32(r1)
; CHECK-P9-NEXT:    stwx r3, r5, r4
; CHECK-P9-NEXT:    lxv v2, -32(r1)
; CHECK-P9-NEXT:    blr
;
; AIX-P8-64-LABEL: testFloat2:
; AIX-P8-64:       # %bb.0: # %entry
; AIX-P8-64-NEXT:    lwz r7, 0(r3)
; AIX-P8-64-NEXT:    addi r6, r1, -32
; AIX-P8-64-NEXT:    rlwinm r4, r4, 2, 28, 29
; AIX-P8-64-NEXT:    rlwinm r5, r5, 2, 28, 29
; AIX-P8-64-NEXT:    stxvw4x v2, 0, r6
; AIX-P8-64-NEXT:    stwx r7, r6, r4
; AIX-P8-64-NEXT:    addi r4, r1, -16
; AIX-P8-64-NEXT:    lxvw4x vs0, 0, r6
; AIX-P8-64-NEXT:    lwz r3, 1(r3)
; AIX-P8-64-NEXT:    stxvw4x vs0, 0, r4
; AIX-P8-64-NEXT:    stwx r3, r4, r5
; AIX-P8-64-NEXT:    lxvw4x v2, 0, r4
; AIX-P8-64-NEXT:    blr
;
; AIX-P8-32-LABEL: testFloat2:
; AIX-P8-32:       # %bb.0: # %entry
; AIX-P8-32-NEXT:    lwz r7, 0(r3)
; AIX-P8-32-NEXT:    addi r6, r1, -32
; AIX-P8-32-NEXT:    rlwinm r4, r4, 2, 28, 29
; AIX-P8-32-NEXT:    stxvw4x v2, 0, r6
; AIX-P8-32-NEXT:    stwx r7, r6, r4
; AIX-P8-32-NEXT:    rlwinm r4, r5, 2, 28, 29
; AIX-P8-32-NEXT:    addi r5, r1, -16
; AIX-P8-32-NEXT:    lxvw4x vs0, 0, r6
; AIX-P8-32-NEXT:    lwz r3, 1(r3)
; AIX-P8-32-NEXT:    stxvw4x vs0, 0, r5
; AIX-P8-32-NEXT:    stwx r3, r5, r4
; AIX-P8-32-NEXT:    lxvw4x v2, 0, r5
; AIX-P8-32-NEXT:    blr
entry:
  %0 = bitcast i8* %b to float*
  %add.ptr1 = getelementptr inbounds i8, i8* %b, i64 1
  %1 = bitcast i8* %add.ptr1 to float*
  %2 = load float, float* %0, align 4
  %vecins = insertelement <4 x float> %a, float %2, i32 %idx1
  %3 = load float, float* %1, align 4
  %vecins2 = insertelement <4 x float> %vecins, float %3, i32 %idx2
  ret <4 x float> %vecins2
}

define <4 x float> @testFloat3(<4 x float> %a, i8* %b, i32 zeroext %idx1, i32 zeroext %idx2) {
; CHECK-LABEL: testFloat3:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    plwz r3, 65536(r5), 0
; CHECK-NEXT:    extsw r4, r6
; CHECK-NEXT:    slwi r4, r4, 2
; CHECK-NEXT:    vinswrx v2, r4, r3
; CHECK-NEXT:    li r3, 1
; CHECK-NEXT:    extsw r4, r7
; CHECK-NEXT:    rldic r3, r3, 36, 27
; CHECK-NEXT:    slwi r4, r4, 2
; CHECK-NEXT:    lwzx r3, r5, r3
; CHECK-NEXT:    vinswrx v2, r4, r3
; CHECK-NEXT:    blr
;
; CHECK-BE-LABEL: testFloat3:
; CHECK-BE:       # %bb.0: # %entry
; CHECK-BE-NEXT:    plwz r3, 65536(r5), 0
; CHECK-BE-NEXT:    extsw r4, r6
; CHECK-BE-NEXT:    slwi r4, r4, 2
; CHECK-BE-NEXT:    vinswlx v2, r4, r3
; CHECK-BE-NEXT:    li r3, 1
; CHECK-BE-NEXT:    extsw r4, r7
; CHECK-BE-NEXT:    rldic r3, r3, 36, 27
; CHECK-BE-NEXT:    slwi r4, r4, 2
; CHECK-BE-NEXT:    lwzx r3, r5, r3
; CHECK-BE-NEXT:    vinswlx v2, r4, r3
; CHECK-BE-NEXT:    blr
;
; CHECK-P9-LABEL: testFloat3:
; CHECK-P9:       # %bb.0: # %entry
; CHECK-P9-NEXT:    lis r3, 1
; CHECK-P9-NEXT:    rlwinm r4, r6, 2, 28, 29
; CHECK-P9-NEXT:    addi r6, r1, -16
; CHECK-P9-NEXT:    lwzx r3, r5, r3
; CHECK-P9-NEXT:    stxv v2, -16(r1)
; CHECK-P9-NEXT:    stwx r3, r6, r4
; CHECK-P9-NEXT:    li r3, 1
; CHECK-P9-NEXT:    rlwinm r4, r7, 2, 28, 29
; CHECK-P9-NEXT:    lxv vs0, -16(r1)
; CHECK-P9-NEXT:    rldic r3, r3, 36, 27
; CHECK-P9-NEXT:    lwzx r3, r5, r3
; CHECK-P9-NEXT:    addi r5, r1, -32
; CHECK-P9-NEXT:    stxv vs0, -32(r1)
; CHECK-P9-NEXT:    stwx r3, r5, r4
; CHECK-P9-NEXT:    lxv v2, -32(r1)
; CHECK-P9-NEXT:    blr
;
; AIX-P8-64-LABEL: testFloat3:
; AIX-P8-64:       # %bb.0: # %entry
; AIX-P8-64-NEXT:    lis r6, 1
; AIX-P8-64-NEXT:    addi r7, r1, -32
; AIX-P8-64-NEXT:    rlwinm r4, r4, 2, 28, 29
; AIX-P8-64-NEXT:    rlwinm r5, r5, 2, 28, 29
; AIX-P8-64-NEXT:    lwzx r6, r3, r6
; AIX-P8-64-NEXT:    stxvw4x v2, 0, r7
; AIX-P8-64-NEXT:    stwx r6, r7, r4
; AIX-P8-64-NEXT:    li r4, 1
; AIX-P8-64-NEXT:    lxvw4x vs0, 0, r7
; AIX-P8-64-NEXT:    rldic r4, r4, 36, 27
; AIX-P8-64-NEXT:    lwzx r3, r3, r4
; AIX-P8-64-NEXT:    addi r4, r1, -16
; AIX-P8-64-NEXT:    stxvw4x vs0, 0, r4
; AIX-P8-64-NEXT:    stwx r3, r4, r5
; AIX-P8-64-NEXT:    lxvw4x v2, 0, r4
; AIX-P8-64-NEXT:    blr
;
; AIX-P8-32-LABEL: testFloat3:
; AIX-P8-32:       # %bb.0: # %entry
; AIX-P8-32-NEXT:    lis r6, 1
; AIX-P8-32-NEXT:    rlwinm r4, r4, 2, 28, 29
; AIX-P8-32-NEXT:    addi r7, r1, -32
; AIX-P8-32-NEXT:    lwzx r6, r3, r6
; AIX-P8-32-NEXT:    stxvw4x v2, 0, r7
; AIX-P8-32-NEXT:    stwx r6, r7, r4
; AIX-P8-32-NEXT:    rlwinm r4, r5, 2, 28, 29
; AIX-P8-32-NEXT:    addi r5, r1, -16
; AIX-P8-32-NEXT:    lxvw4x vs0, 0, r7
; AIX-P8-32-NEXT:    lwz r3, 0(r3)
; AIX-P8-32-NEXT:    stxvw4x vs0, 0, r5
; AIX-P8-32-NEXT:    stwx r3, r5, r4
; AIX-P8-32-NEXT:    lxvw4x v2, 0, r5
; AIX-P8-32-NEXT:    blr
entry:
  %add.ptr = getelementptr inbounds i8, i8* %b, i64 65536
  %0 = bitcast i8* %add.ptr to float*
  %add.ptr1 = getelementptr inbounds i8, i8* %b, i64 68719476736
  %1 = bitcast i8* %add.ptr1 to float*
  %2 = load float, float* %0, align 4
  %vecins = insertelement <4 x float> %a, float %2, i32 %idx1
  %3 = load float, float* %1, align 4
  %vecins2 = insertelement <4 x float> %vecins, float %3, i32 %idx2
  ret <4 x float> %vecins2
}

; Float immediate

define <4 x float> @testFloatImm1(<4 x float> %a, float %b) {
; CHECK-LABEL: testFloatImm1:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    xscvdpspn vs0, f1
; CHECK-NEXT:    xxinsertw v2, vs0, 12
; CHECK-NEXT:    xxinsertw v2, vs0, 4
; CHECK-NEXT:    blr
;
; CHECK-BE-LABEL: testFloatImm1:
; CHECK-BE:       # %bb.0: # %entry
; CHECK-BE-NEXT:    xscvdpspn vs0, f1
; CHECK-BE-NEXT:    xxinsertw v2, vs0, 0
; CHECK-BE-NEXT:    xxinsertw v2, vs0, 8
; CHECK-BE-NEXT:    blr
;
; CHECK-P9-LABEL: testFloatImm1:
; CHECK-P9:       # %bb.0: # %entry
; CHECK-P9-NEXT:    xscvdpspn vs0, f1
; CHECK-P9-NEXT:    xxinsertw v2, vs0, 0
; CHECK-P9-NEXT:    xxinsertw v2, vs0, 8
; CHECK-P9-NEXT:    blr
;
; AIX-P8-64-LABEL: testFloatImm1:
; AIX-P8-64:       # %bb.0: # %entry
; AIX-P8-64-NEXT:    ld r3, L..C2(r2) # %const.0
; AIX-P8-64-NEXT:    xscvdpspn v3, f1
; AIX-P8-64-NEXT:    lxvw4x v4, 0, r3
; AIX-P8-64-NEXT:    ld r3, L..C3(r2) # %const.1
; AIX-P8-64-NEXT:    vperm v2, v3, v2, v4
; AIX-P8-64-NEXT:    lxvw4x v4, 0, r3
; AIX-P8-64-NEXT:    vperm v2, v2, v3, v4
; AIX-P8-64-NEXT:    blr
;
; AIX-P8-32-LABEL: testFloatImm1:
; AIX-P8-32:       # %bb.0: # %entry
; AIX-P8-32-NEXT:    lwz r3, L..C6(r2) # %const.0
; AIX-P8-32-NEXT:    xscvdpspn v3, f1
; AIX-P8-32-NEXT:    lxvw4x v4, 0, r3
; AIX-P8-32-NEXT:    lwz r3, L..C7(r2) # %const.1
; AIX-P8-32-NEXT:    vperm v2, v3, v2, v4
; AIX-P8-32-NEXT:    lxvw4x v4, 0, r3
; AIX-P8-32-NEXT:    vperm v2, v2, v3, v4
; AIX-P8-32-NEXT:    blr
entry:
  %vecins = insertelement <4 x float> %a, float %b, i32 0
  %vecins1 = insertelement <4 x float> %vecins, float %b, i32 2
  ret <4 x float> %vecins1
}

define <4 x float> @testFloatImm2(<4 x float> %a, i32* %b) {
; CHECK-LABEL: testFloatImm2:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    lwz r3, 0(r5)
; CHECK-NEXT:    vinsw v2, r3, 12
; CHECK-NEXT:    lwz r3, 4(r5)
; CHECK-NEXT:    vinsw v2, r3, 4
; CHECK-NEXT:    blr
;
; CHECK-BE-LABEL: testFloatImm2:
; CHECK-BE:       # %bb.0: # %entry
; CHECK-BE-NEXT:    lwz r3, 0(r5)
; CHECK-BE-NEXT:    vinsw v2, r3, 0
; CHECK-BE-NEXT:    lwz r3, 4(r5)
; CHECK-BE-NEXT:    vinsw v2, r3, 8
; CHECK-BE-NEXT:    blr
;
; CHECK-P9-LABEL: testFloatImm2:
; CHECK-P9:       # %bb.0: # %entry
; CHECK-P9-NEXT:    lwz r3, 0(r5)
; CHECK-P9-NEXT:    mtfprwz f0, r3
; CHECK-P9-NEXT:    lwz r3, 4(r5)
; CHECK-P9-NEXT:    xxinsertw v2, vs0, 0
; CHECK-P9-NEXT:    mtfprwz f0, r3
; CHECK-P9-NEXT:    xxinsertw v2, vs0, 8
; CHECK-P9-NEXT:    blr
;
; AIX-P8-64-LABEL: testFloatImm2:
; AIX-P8-64:       # %bb.0: # %entry
; AIX-P8-64-NEXT:    ld r4, L..C4(r2) # %const.0
; AIX-P8-64-NEXT:    lxsiwzx v3, 0, r3
; AIX-P8-64-NEXT:    li r5, 4
; AIX-P8-64-NEXT:    lxvw4x v4, 0, r4
; AIX-P8-64-NEXT:    ld r4, L..C5(r2) # %const.1
; AIX-P8-64-NEXT:    vperm v2, v3, v2, v4
; AIX-P8-64-NEXT:    lxsiwzx v3, r3, r5
; AIX-P8-64-NEXT:    lxvw4x v4, 0, r4
; AIX-P8-64-NEXT:    vperm v2, v2, v3, v4
; AIX-P8-64-NEXT:    blr
;
; AIX-P8-32-LABEL: testFloatImm2:
; AIX-P8-32:       # %bb.0: # %entry
; AIX-P8-32-NEXT:    lwz r4, L..C8(r2) # %const.0
; AIX-P8-32-NEXT:    lxsiwzx v3, 0, r3
; AIX-P8-32-NEXT:    li r5, 4
; AIX-P8-32-NEXT:    lxvw4x v4, 0, r4
; AIX-P8-32-NEXT:    lwz r4, L..C9(r2) # %const.1
; AIX-P8-32-NEXT:    vperm v2, v3, v2, v4
; AIX-P8-32-NEXT:    lxsiwzx v3, r3, r5
; AIX-P8-32-NEXT:    lxvw4x v4, 0, r4
; AIX-P8-32-NEXT:    vperm v2, v2, v3, v4
; AIX-P8-32-NEXT:    blr
entry:
  %0 = bitcast i32* %b to float*
  %add.ptr1 = getelementptr inbounds i32, i32* %b, i64 1
  %1 = bitcast i32* %add.ptr1 to float*
  %2 = load float, float* %0, align 4
  %vecins = insertelement <4 x float> %a, float %2, i32 0
  %3 = load float, float* %1, align 4
  %vecins2 = insertelement <4 x float> %vecins, float %3, i32 2
  ret <4 x float> %vecins2
}

define <4 x float> @testFloatImm3(<4 x float> %a, i32* %b) {
; CHECK-LABEL: testFloatImm3:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    plwz r3, 262144(r5), 0
; CHECK-NEXT:    vinsw v2, r3, 12
; CHECK-NEXT:    li r3, 1
; CHECK-NEXT:    rldic r3, r3, 38, 25
; CHECK-NEXT:    lwzx r3, r5, r3
; CHECK-NEXT:    vinsw v2, r3, 4
; CHECK-NEXT:    blr
;
; CHECK-BE-LABEL: testFloatImm3:
; CHECK-BE:       # %bb.0: # %entry
; CHECK-BE-NEXT:    plwz r3, 262144(r5), 0
; CHECK-BE-NEXT:    vinsw v2, r3, 0
; CHECK-BE-NEXT:    li r3, 1
; CHECK-BE-NEXT:    rldic r3, r3, 38, 25
; CHECK-BE-NEXT:    lwzx r3, r5, r3
; CHECK-BE-NEXT:    vinsw v2, r3, 8
; CHECK-BE-NEXT:    blr
;
; CHECK-P9-LABEL: testFloatImm3:
; CHECK-P9:       # %bb.0: # %entry
; CHECK-P9-NEXT:    lis r3, 4
; CHECK-P9-NEXT:    lwzx r3, r5, r3
; CHECK-P9-NEXT:    mtfprwz f0, r3
; CHECK-P9-NEXT:    li r3, 1
; CHECK-P9-NEXT:    rldic r3, r3, 38, 25
; CHECK-P9-NEXT:    xxinsertw v2, vs0, 0
; CHECK-P9-NEXT:    lwzx r3, r5, r3
; CHECK-P9-NEXT:    mtfprwz f0, r3
; CHECK-P9-NEXT:    xxinsertw v2, vs0, 8
; CHECK-P9-NEXT:    blr
;
; AIX-P8-64-LABEL: testFloatImm3:
; AIX-P8-64:       # %bb.0: # %entry
; AIX-P8-64-NEXT:    ld r4, L..C6(r2) # %const.0
; AIX-P8-64-NEXT:    lis r5, 4
; AIX-P8-64-NEXT:    lxsiwzx v3, r3, r5
; AIX-P8-64-NEXT:    li r5, 1
; AIX-P8-64-NEXT:    rldic r5, r5, 38, 25
; AIX-P8-64-NEXT:    lxvw4x v4, 0, r4
; AIX-P8-64-NEXT:    ld r4, L..C7(r2) # %const.1
; AIX-P8-64-NEXT:    vperm v2, v3, v2, v4
; AIX-P8-64-NEXT:    lxsiwzx v3, r3, r5
; AIX-P8-64-NEXT:    lxvw4x v4, 0, r4
; AIX-P8-64-NEXT:    vperm v2, v2, v3, v4
; AIX-P8-64-NEXT:    blr
;
; AIX-P8-32-LABEL: testFloatImm3:
; AIX-P8-32:       # %bb.0: # %entry
; AIX-P8-32-NEXT:    lwz r4, L..C10(r2) # %const.0
; AIX-P8-32-NEXT:    lis r5, 4
; AIX-P8-32-NEXT:    lxsiwzx v3, r3, r5
; AIX-P8-32-NEXT:    lxvw4x v4, 0, r4
; AIX-P8-32-NEXT:    lwz r4, L..C11(r2) # %const.1
; AIX-P8-32-NEXT:    vperm v2, v3, v2, v4
; AIX-P8-32-NEXT:    lxvw4x v3, 0, r4
; AIX-P8-32-NEXT:    lxsiwzx v4, 0, r3
; AIX-P8-32-NEXT:    vperm v2, v2, v4, v3
; AIX-P8-32-NEXT:    blr
entry:
  %add.ptr = getelementptr inbounds i32, i32* %b, i64 65536
  %0 = bitcast i32* %add.ptr to float*
  %add.ptr1 = getelementptr inbounds i32, i32* %b, i64 68719476736
  %1 = bitcast i32* %add.ptr1 to float*
  %2 = load float, float* %0, align 4
  %vecins = insertelement <4 x float> %a, float %2, i32 0
  %3 = load float, float* %1, align 4
  %vecins2 = insertelement <4 x float> %vecins, float %3, i32 2
  ret <4 x float> %vecins2
}

; Double indexed

define <2 x double> @testDouble1(<2 x double> %a, double %b, i32 zeroext %idx1) {
; CHECK-LABEL: testDouble1:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    extsw r4, r6
; CHECK-NEXT:    mffprd r3, f1
; CHECK-NEXT:    rlwinm r4, r4, 3, 0, 28
; CHECK-NEXT:    vinsdrx v2, r4, r3
; CHECK-NEXT:    blr
;
; CHECK-BE-LABEL: testDouble1:
; CHECK-BE:       # %bb.0: # %entry
; CHECK-BE-NEXT:    extsw r4, r6
; CHECK-BE-NEXT:    mffprd r3, f1
; CHECK-BE-NEXT:    rlwinm r4, r4, 3, 0, 28
; CHECK-BE-NEXT:    vinsdlx v2, r4, r3
; CHECK-BE-NEXT:    blr
;
; CHECK-P9-LABEL: testDouble1:
; CHECK-P9:       # %bb.0: # %entry
; CHECK-P9-NEXT:    addi r4, r1, -16
; CHECK-P9-NEXT:    rlwinm r3, r6, 3, 28, 28
; CHECK-P9-NEXT:    stxv v2, -16(r1)
; CHECK-P9-NEXT:    stfdx f1, r4, r3
; CHECK-P9-NEXT:    lxv v2, -16(r1)
; CHECK-P9-NEXT:    blr
;
; AIX-P8-64-LABEL: testDouble1:
; AIX-P8-64:       # %bb.0: # %entry
; AIX-P8-64-NEXT:    addi r3, r1, -16
; AIX-P8-64-NEXT:    rlwinm r4, r4, 3, 28, 28
; AIX-P8-64-NEXT:    stxvd2x v2, 0, r3
; AIX-P8-64-NEXT:    stfdx f1, r3, r4
; AIX-P8-64-NEXT:    lxvd2x v2, 0, r3
; AIX-P8-64-NEXT:    blr
;
; AIX-P8-32-LABEL: testDouble1:
; AIX-P8-32:       # %bb.0: # %entry
; AIX-P8-32-NEXT:    addi r3, r1, -16
; AIX-P8-32-NEXT:    rlwinm r4, r5, 3, 28, 28
; AIX-P8-32-NEXT:    stxvd2x v2, 0, r3
; AIX-P8-32-NEXT:    stfdx f1, r3, r4
; AIX-P8-32-NEXT:    lxvd2x v2, 0, r3
; AIX-P8-32-NEXT:    blr
entry:
  %vecins = insertelement <2 x double> %a, double %b, i32 %idx1
  ret <2 x double> %vecins
}

define <2 x double> @testDouble2(<2 x double> %a, i8* %b, i32 zeroext %idx1, i32 zeroext %idx2) {
; CHECK-LABEL: testDouble2:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    ld r3, 0(r5)
; CHECK-NEXT:    extsw r4, r6
; CHECK-NEXT:    rlwinm r4, r4, 3, 0, 28
; CHECK-NEXT:    vinsdrx v2, r4, r3
; CHECK-NEXT:    pld r3, 1(r5), 0
; CHECK-NEXT:    extsw r4, r7
; CHECK-NEXT:    rlwinm r4, r4, 3, 0, 28
; CHECK-NEXT:    vinsdrx v2, r4, r3
; CHECK-NEXT:    blr
;
; CHECK-BE-LABEL: testDouble2:
; CHECK-BE:       # %bb.0: # %entry
; CHECK-BE-NEXT:    ld r3, 0(r5)
; CHECK-BE-NEXT:    extsw r4, r6
; CHECK-BE-NEXT:    rlwinm r4, r4, 3, 0, 28
; CHECK-BE-NEXT:    vinsdlx v2, r4, r3
; CHECK-BE-NEXT:    pld r3, 1(r5), 0
; CHECK-BE-NEXT:    extsw r4, r7
; CHECK-BE-NEXT:    rlwinm r4, r4, 3, 0, 28
; CHECK-BE-NEXT:    vinsdlx v2, r4, r3
; CHECK-BE-NEXT:    blr
;
; CHECK-P9-LABEL: testDouble2:
; CHECK-P9:       # %bb.0: # %entry
; CHECK-P9-NEXT:    ld r3, 0(r5)
; CHECK-P9-NEXT:    rlwinm r4, r6, 3, 28, 28
; CHECK-P9-NEXT:    addi r6, r1, -32
; CHECK-P9-NEXT:    stxv v2, -32(r1)
; CHECK-P9-NEXT:    stdx r3, r6, r4
; CHECK-P9-NEXT:    li r3, 1
; CHECK-P9-NEXT:    rlwinm r4, r7, 3, 28, 28
; CHECK-P9-NEXT:    lxv vs0, -32(r1)
; CHECK-P9-NEXT:    ldx r3, r5, r3
; CHECK-P9-NEXT:    addi r5, r1, -16
; CHECK-P9-NEXT:    stxv vs0, -16(r1)
; CHECK-P9-NEXT:    stdx r3, r5, r4
; CHECK-P9-NEXT:    lxv v2, -16(r1)
; CHECK-P9-NEXT:    blr
;
; AIX-P8-64-LABEL: testDouble2:
; AIX-P8-64:       # %bb.0: # %entry
; AIX-P8-64-NEXT:    ld r7, 0(r3)
; AIX-P8-64-NEXT:    addi r6, r1, -32
; AIX-P8-64-NEXT:    rlwinm r4, r4, 3, 28, 28
; AIX-P8-64-NEXT:    rlwinm r5, r5, 3, 28, 28
; AIX-P8-64-NEXT:    stxvd2x v2, 0, r6
; AIX-P8-64-NEXT:    stdx r7, r6, r4
; AIX-P8-64-NEXT:    li r4, 1
; AIX-P8-64-NEXT:    lxvd2x vs0, 0, r6
; AIX-P8-64-NEXT:    ldx r3, r3, r4
; AIX-P8-64-NEXT:    addi r4, r1, -16
; AIX-P8-64-NEXT:    stxvd2x vs0, 0, r4
; AIX-P8-64-NEXT:    stdx r3, r4, r5
; AIX-P8-64-NEXT:    lxvd2x v2, 0, r4
; AIX-P8-64-NEXT:    blr
;
; AIX-P8-32-LABEL: testDouble2:
; AIX-P8-32:       # %bb.0: # %entry
; AIX-P8-32-NEXT:    lfd f0, 0(r3)
; AIX-P8-32-NEXT:    addi r6, r1, -32
; AIX-P8-32-NEXT:    rlwinm r4, r4, 3, 28, 28
; AIX-P8-32-NEXT:    stxvd2x v2, 0, r6
; AIX-P8-32-NEXT:    stfdx f0, r6, r4
; AIX-P8-32-NEXT:    addi r4, r1, -16
; AIX-P8-32-NEXT:    lxvd2x vs0, 0, r6
; AIX-P8-32-NEXT:    lfd f1, 1(r3)
; AIX-P8-32-NEXT:    rlwinm r3, r5, 3, 28, 28
; AIX-P8-32-NEXT:    stxvd2x vs0, 0, r4
; AIX-P8-32-NEXT:    stfdx f1, r4, r3
; AIX-P8-32-NEXT:    lxvd2x v2, 0, r4
; AIX-P8-32-NEXT:    blr
entry:
  %0 = bitcast i8* %b to double*
  %add.ptr1 = getelementptr inbounds i8, i8* %b, i64 1
  %1 = bitcast i8* %add.ptr1 to double*
  %2 = load double, double* %0, align 8
  %vecins = insertelement <2 x double> %a, double %2, i32 %idx1
  %3 = load double, double* %1, align 8
  %vecins2 = insertelement <2 x double> %vecins, double %3, i32 %idx2
  ret <2 x double> %vecins2
}

define <2 x double> @testDouble3(<2 x double> %a, i8* %b, i32 zeroext %idx1, i32 zeroext %idx2) {
; CHECK-LABEL: testDouble3:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    pld r3, 65536(r5), 0
; CHECK-NEXT:    extsw r4, r6
; CHECK-NEXT:    rlwinm r4, r4, 3, 0, 28
; CHECK-NEXT:    vinsdrx v2, r4, r3
; CHECK-NEXT:    li r3, 1
; CHECK-NEXT:    extsw r4, r7
; CHECK-NEXT:    rldic r3, r3, 36, 27
; CHECK-NEXT:    rlwinm r4, r4, 3, 0, 28
; CHECK-NEXT:    ldx r3, r5, r3
; CHECK-NEXT:    vinsdrx v2, r4, r3
; CHECK-NEXT:    blr
;
; CHECK-BE-LABEL: testDouble3:
; CHECK-BE:       # %bb.0: # %entry
; CHECK-BE-NEXT:    pld r3, 65536(r5), 0
; CHECK-BE-NEXT:    extsw r4, r6
; CHECK-BE-NEXT:    rlwinm r4, r4, 3, 0, 28
; CHECK-BE-NEXT:    vinsdlx v2, r4, r3
; CHECK-BE-NEXT:    li r3, 1
; CHECK-BE-NEXT:    extsw r4, r7
; CHECK-BE-NEXT:    rldic r3, r3, 36, 27
; CHECK-BE-NEXT:    rlwinm r4, r4, 3, 0, 28
; CHECK-BE-NEXT:    ldx r3, r5, r3
; CHECK-BE-NEXT:    vinsdlx v2, r4, r3
; CHECK-BE-NEXT:    blr
;
; CHECK-P9-LABEL: testDouble3:
; CHECK-P9:       # %bb.0: # %entry
; CHECK-P9-NEXT:    lis r3, 1
; CHECK-P9-NEXT:    rlwinm r4, r6, 3, 28, 28
; CHECK-P9-NEXT:    addi r6, r1, -32
; CHECK-P9-NEXT:    ldx r3, r5, r3
; CHECK-P9-NEXT:    stxv v2, -32(r1)
; CHECK-P9-NEXT:    stdx r3, r6, r4
; CHECK-P9-NEXT:    li r3, 1
; CHECK-P9-NEXT:    rlwinm r4, r7, 3, 28, 28
; CHECK-P9-NEXT:    lxv vs0, -32(r1)
; CHECK-P9-NEXT:    rldic r3, r3, 36, 27
; CHECK-P9-NEXT:    ldx r3, r5, r3
; CHECK-P9-NEXT:    addi r5, r1, -16
; CHECK-P9-NEXT:    stxv vs0, -16(r1)
; CHECK-P9-NEXT:    stdx r3, r5, r4
; CHECK-P9-NEXT:    lxv v2, -16(r1)
; CHECK-P9-NEXT:    blr
;
; AIX-P8-64-LABEL: testDouble3:
; AIX-P8-64:       # %bb.0: # %entry
; AIX-P8-64-NEXT:    lis r6, 1
; AIX-P8-64-NEXT:    addi r7, r1, -32
; AIX-P8-64-NEXT:    rlwinm r4, r4, 3, 28, 28
; AIX-P8-64-NEXT:    li r8, 1
; AIX-P8-64-NEXT:    rlwinm r5, r5, 3, 28, 28
; AIX-P8-64-NEXT:    ldx r6, r3, r6
; AIX-P8-64-NEXT:    stxvd2x v2, 0, r7
; AIX-P8-64-NEXT:    stdx r6, r7, r4
; AIX-P8-64-NEXT:    rldic r4, r8, 36, 27
; AIX-P8-64-NEXT:    lxvd2x vs0, 0, r7
; AIX-P8-64-NEXT:    ldx r3, r3, r4
; AIX-P8-64-NEXT:    addi r4, r1, -16
; AIX-P8-64-NEXT:    stxvd2x vs0, 0, r4
; AIX-P8-64-NEXT:    stdx r3, r4, r5
; AIX-P8-64-NEXT:    lxvd2x v2, 0, r4
; AIX-P8-64-NEXT:    blr
;
; AIX-P8-32-LABEL: testDouble3:
; AIX-P8-32:       # %bb.0: # %entry
; AIX-P8-32-NEXT:    lis r6, 1
; AIX-P8-32-NEXT:    rlwinm r4, r4, 3, 28, 28
; AIX-P8-32-NEXT:    lfdx f0, r3, r6
; AIX-P8-32-NEXT:    addi r6, r1, -32
; AIX-P8-32-NEXT:    stxvd2x v2, 0, r6
; AIX-P8-32-NEXT:    stfdx f0, r6, r4
; AIX-P8-32-NEXT:    addi r4, r1, -16
; AIX-P8-32-NEXT:    lxvd2x vs0, 0, r6
; AIX-P8-32-NEXT:    lfd f1, 0(r3)
; AIX-P8-32-NEXT:    rlwinm r3, r5, 3, 28, 28
; AIX-P8-32-NEXT:    stxvd2x vs0, 0, r4
; AIX-P8-32-NEXT:    stfdx f1, r4, r3
; AIX-P8-32-NEXT:    lxvd2x v2, 0, r4
; AIX-P8-32-NEXT:    blr
entry:
  %add.ptr = getelementptr inbounds i8, i8* %b, i64 65536
  %0 = bitcast i8* %add.ptr to double*
  %add.ptr1 = getelementptr inbounds i8, i8* %b, i64 68719476736
  %1 = bitcast i8* %add.ptr1 to double*
  %2 = load double, double* %0, align 8
  %vecins = insertelement <2 x double> %a, double %2, i32 %idx1
  %3 = load double, double* %1, align 8
  %vecins2 = insertelement <2 x double> %vecins, double %3, i32 %idx2
  ret <2 x double> %vecins2
}

; Double immediate

define <2 x double> @testDoubleImm1(<2 x double> %a, double %b) {
; CHECK-LABEL: testDoubleImm1:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    # kill: def $f1 killed $f1 def $vsl1
; CHECK-NEXT:    xxmrghd v2, v2, vs1
; CHECK-NEXT:    blr
;
; CHECK-BE-LABEL: testDoubleImm1:
; CHECK-BE:       # %bb.0: # %entry
; CHECK-BE-NEXT:    # kill: def $f1 killed $f1 def $vsl1
; CHECK-BE-NEXT:    xxpermdi v2, vs1, v2, 1
; CHECK-BE-NEXT:    blr
;
; CHECK-P9-LABEL: testDoubleImm1:
; CHECK-P9:       # %bb.0: # %entry
; CHECK-P9-NEXT:    # kill: def $f1 killed $f1 def $vsl1
; CHECK-P9-NEXT:    xxpermdi v2, vs1, v2, 1
; CHECK-P9-NEXT:    blr
;
; AIX-P8-LABEL: testDoubleImm1:
; AIX-P8:       # %bb.0: # %entry
; AIX-P8-NEXT:    # kill: def $f1 killed $f1 def $vsl1
; AIX-P8-NEXT:    xxpermdi v2, vs1, v2, 1
; AIX-P8-NEXT:    blr
entry:
  %vecins = insertelement <2 x double> %a, double %b, i32 0
  ret <2 x double> %vecins
}

define <2 x double> @testDoubleImm2(<2 x double> %a, i32* %b) {
; CHECK-LABEL: testDoubleImm2:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    lfd f0, 0(r5)
; CHECK-NEXT:    xxmrghd v2, v2, vs0
; CHECK-NEXT:    blr
;
; CHECK-BE-LABEL: testDoubleImm2:
; CHECK-BE:       # %bb.0: # %entry
; CHECK-BE-NEXT:    lfd f0, 0(r5)
; CHECK-BE-NEXT:    xxpermdi v2, vs0, v2, 1
; CHECK-BE-NEXT:    blr
;
; CHECK-P9-LABEL: testDoubleImm2:
; CHECK-P9:       # %bb.0: # %entry
; CHECK-P9-NEXT:    lfd f0, 0(r5)
; CHECK-P9-NEXT:    xxpermdi v2, vs0, v2, 1
; CHECK-P9-NEXT:    blr
;
; AIX-P8-LABEL: testDoubleImm2:
; AIX-P8:       # %bb.0: # %entry
; AIX-P8-NEXT:    lfd f0, 0(r3)
; AIX-P8-NEXT:    xxpermdi v2, vs0, v2, 1
; AIX-P8-NEXT:    blr
entry:
  %0 = bitcast i32* %b to double*
  %1 = load double, double* %0, align 8
  %vecins = insertelement <2 x double> %a, double %1, i32 0
  ret <2 x double> %vecins
}

define <2 x double> @testDoubleImm3(<2 x double> %a, i32* %b) {
; CHECK-LABEL: testDoubleImm3:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    lfd f0, 4(r5)
; CHECK-NEXT:    xxmrghd v2, v2, vs0
; CHECK-NEXT:    blr
;
; CHECK-BE-LABEL: testDoubleImm3:
; CHECK-BE:       # %bb.0: # %entry
; CHECK-BE-NEXT:    lfd f0, 4(r5)
; CHECK-BE-NEXT:    xxpermdi v2, vs0, v2, 1
; CHECK-BE-NEXT:    blr
;
; CHECK-P9-LABEL: testDoubleImm3:
; CHECK-P9:       # %bb.0: # %entry
; CHECK-P9-NEXT:    lfd f0, 4(r5)
; CHECK-P9-NEXT:    xxpermdi v2, vs0, v2, 1
; CHECK-P9-NEXT:    blr
;
; AIX-P8-LABEL: testDoubleImm3:
; AIX-P8:       # %bb.0: # %entry
; AIX-P8-NEXT:    lfd f0, 4(r3)
; AIX-P8-NEXT:    xxpermdi v2, vs0, v2, 1
; AIX-P8-NEXT:    blr
entry:
  %add.ptr = getelementptr inbounds i32, i32* %b, i64 1
  %0 = bitcast i32* %add.ptr to double*
  %1 = load double, double* %0, align 8
  %vecins = insertelement <2 x double> %a, double %1, i32 0
  ret <2 x double> %vecins
}

define <2 x double> @testDoubleImm4(<2 x double> %a, i32* %b) {
; CHECK-LABEL: testDoubleImm4:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    plfd f0, 262144(r5), 0
; CHECK-NEXT:    xxmrghd v2, v2, vs0
; CHECK-NEXT:    blr
;
; CHECK-BE-LABEL: testDoubleImm4:
; CHECK-BE:       # %bb.0: # %entry
; CHECK-BE-NEXT:    plfd f0, 262144(r5), 0
; CHECK-BE-NEXT:    xxpermdi v2, vs0, v2, 1
; CHECK-BE-NEXT:    blr
;
; CHECK-P9-LABEL: testDoubleImm4:
; CHECK-P9:       # %bb.0: # %entry
; CHECK-P9-NEXT:    lis r3, 4
; CHECK-P9-NEXT:    lfdx f0, r5, r3
; CHECK-P9-NEXT:    xxpermdi v2, vs0, v2, 1
; CHECK-P9-NEXT:    blr
;
; AIX-P8-LABEL: testDoubleImm4:
; AIX-P8:       # %bb.0: # %entry
; AIX-P8-NEXT:    lis r4, 4
; AIX-P8-NEXT:    lfdx f0, r3, r4
; AIX-P8-NEXT:    xxpermdi v2, vs0, v2, 1
; AIX-P8-NEXT:    blr
entry:
  %add.ptr = getelementptr inbounds i32, i32* %b, i64 65536
  %0 = bitcast i32* %add.ptr to double*
  %1 = load double, double* %0, align 8
  %vecins = insertelement <2 x double> %a, double %1, i32 0
  ret <2 x double> %vecins
}

define <2 x double> @testDoubleImm5(<2 x double> %a, i32* %b) {
; CHECK-LABEL: testDoubleImm5:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    li r3, 1
; CHECK-NEXT:    rldic r3, r3, 38, 25
; CHECK-NEXT:    lfdx f0, r5, r3
; CHECK-NEXT:    xxmrghd v2, v2, vs0
; CHECK-NEXT:    blr
;
; CHECK-BE-LABEL: testDoubleImm5:
; CHECK-BE:       # %bb.0: # %entry
; CHECK-BE-NEXT:    li r3, 1
; CHECK-BE-NEXT:    rldic r3, r3, 38, 25
; CHECK-BE-NEXT:    lfdx f0, r5, r3
; CHECK-BE-NEXT:    xxpermdi v2, vs0, v2, 1
; CHECK-BE-NEXT:    blr
;
; CHECK-P9-LABEL: testDoubleImm5:
; CHECK-P9:       # %bb.0: # %entry
; CHECK-P9-NEXT:    li r3, 1
; CHECK-P9-NEXT:    rldic r3, r3, 38, 25
; CHECK-P9-NEXT:    lfdx f0, r5, r3
; CHECK-P9-NEXT:    xxpermdi v2, vs0, v2, 1
; CHECK-P9-NEXT:    blr
;
; AIX-P8-64-LABEL: testDoubleImm5:
; AIX-P8-64:       # %bb.0: # %entry
; AIX-P8-64-NEXT:    li r4, 1
; AIX-P8-64-NEXT:    rldic r4, r4, 38, 25
; AIX-P8-64-NEXT:    lfdx f0, r3, r4
; AIX-P8-64-NEXT:    xxpermdi v2, vs0, v2, 1
; AIX-P8-64-NEXT:    blr
;
; AIX-P8-32-LABEL: testDoubleImm5:
; AIX-P8-32:       # %bb.0: # %entry
; AIX-P8-32-NEXT:    lfd f0, 0(r3)
; AIX-P8-32-NEXT:    xxpermdi v2, vs0, v2, 1
; AIX-P8-32-NEXT:    blr
entry:
  %add.ptr = getelementptr inbounds i32, i32* %b, i64 68719476736
  %0 = bitcast i32* %add.ptr to double*
  %1 = load double, double* %0, align 8
  %vecins = insertelement <2 x double> %a, double %1, i32 0
  ret <2 x double> %vecins
}

define dso_local <4 x float> @testInsertDoubleToFloat(<4 x float> %a, double %b) local_unnamed_addr #0 {
; CHECK-LABEL: testInsertDoubleToFloat:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    xscvdpsp f0, f1
; CHECK-NEXT:    xxinsertw v2, vs0, 8
; CHECK-NEXT:    blr
;
; CHECK-BE-LABEL: testInsertDoubleToFloat:
; CHECK-BE:       # %bb.0: # %entry
; CHECK-BE-NEXT:    xscvdpsp f0, f1
; CHECK-BE-NEXT:    xxinsertw v2, vs0, 4
; CHECK-BE-NEXT:    blr
;
; CHECK-P9-LABEL: testInsertDoubleToFloat:
; CHECK-P9:       # %bb.0: # %entry
; CHECK-P9-NEXT:    xscvdpsp f0, f1
; CHECK-P9-NEXT:    xxinsertw v2, vs0, 4
; CHECK-P9-NEXT:    blr
;
; AIX-P8-64-LABEL: testInsertDoubleToFloat:
; AIX-P8-64:       # %bb.0: # %entry
; AIX-P8-64-NEXT:    xsrsp f0, f1
; AIX-P8-64-NEXT:    ld r3, L..C8(r2) # %const.0
; AIX-P8-64-NEXT:    lxvw4x v4, 0, r3
; AIX-P8-64-NEXT:    xscvdpspn v3, f0
; AIX-P8-64-NEXT:    vperm v2, v2, v3, v4
; AIX-P8-64-NEXT:    blr
;
; AIX-P8-32-LABEL: testInsertDoubleToFloat:
; AIX-P8-32:       # %bb.0: # %entry
; AIX-P8-32-NEXT:    xsrsp f0, f1
; AIX-P8-32-NEXT:    lwz r3, L..C12(r2) # %const.0
; AIX-P8-32-NEXT:    lxvw4x v4, 0, r3
; AIX-P8-32-NEXT:    xscvdpspn v3, f0
; AIX-P8-32-NEXT:    vperm v2, v2, v3, v4
; AIX-P8-32-NEXT:    blr
entry:
  %conv = fptrunc double %b to float
  %vecins = insertelement <4 x float> %a, float %conv, i32 1
  ret <4 x float> %vecins
}
