13678df5aSAlbion Fung; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 23678df5aSAlbion Fung; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu \ 33678df5aSAlbion Fung; RUN: -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \ 43678df5aSAlbion Fung; RUN: -mcpu=pwr7 < %s | FileCheck %s --check-prefix=CHECK-LE-P7 53678df5aSAlbion Fung; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu \ 63678df5aSAlbion Fung; RUN: -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \ 73678df5aSAlbion Fung; RUN: -mcpu=pwr8 < %s | FileCheck %s --check-prefix=CHECK-LE-P8 83678df5aSAlbion Fung; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu \ 93678df5aSAlbion Fung; RUN: -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \ 103678df5aSAlbion Fung; RUN: -mcpu=pwr9 < %s | FileCheck %s --check-prefix=CHECK-LE-P9 113678df5aSAlbion Fung; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu \ 123678df5aSAlbion Fung; RUN: -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \ 133678df5aSAlbion Fung; RUN: -mcpu=pwr7 < %s | FileCheck %s --check-prefix=CHECK-BE-P7 143678df5aSAlbion Fung; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu \ 153678df5aSAlbion Fung; RUN: -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \ 163678df5aSAlbion Fung; RUN: -mcpu=pwr8 < %s | FileCheck %s --check-prefix=CHECK-BE-P8 173678df5aSAlbion Fung; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu \ 183678df5aSAlbion Fung; RUN: -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \ 193678df5aSAlbion Fung; RUN: -mcpu=pwr9 < %s | FileCheck %s --check-prefix=CHECK-BE-P9 204195ed99SAlbion Fung; xscvdpsxws and xscvdpsxws is only available on Power7 and above 214195ed99SAlbion Fung; Codgen is different for Power7, Power8, and Power9. 223678df5aSAlbion Fung 233678df5aSAlbion Fungdefine dso_local <4 x i32> @test(<4 x i32> %a, double %b) { 243678df5aSAlbion Fung; CHECK-LE-P7-LABEL: test: 253678df5aSAlbion Fung; CHECK-LE-P7: # %bb.0: # %entry 263678df5aSAlbion Fung; CHECK-LE-P7-NEXT: xscvdpsxws f0, f1 273678df5aSAlbion Fung; CHECK-LE-P7-NEXT: addi r3, r1, -4 283678df5aSAlbion Fung; CHECK-LE-P7-NEXT: addis r4, r2, .LCPI0_0@toc@ha 293678df5aSAlbion Fung; CHECK-LE-P7-NEXT: addi r4, r4, .LCPI0_0@toc@l 303678df5aSAlbion Fung; CHECK-LE-P7-NEXT: stfiwx f0, 0, r3 31*335e8bf1SQuinn Pham; CHECK-LE-P7-NEXT: lxvd2x vs0, 0, r4 323678df5aSAlbion Fung; CHECK-LE-P7-NEXT: lwz r3, -4(r1) 333678df5aSAlbion Fung; CHECK-LE-P7-NEXT: stw r3, -32(r1) 343678df5aSAlbion Fung; CHECK-LE-P7-NEXT: addi r3, r1, -32 35*335e8bf1SQuinn Pham; CHECK-LE-P7-NEXT: xxswapd v3, vs0 36*335e8bf1SQuinn Pham; CHECK-LE-P7-NEXT: lxvd2x vs1, 0, r3 37*335e8bf1SQuinn Pham; CHECK-LE-P7-NEXT: xxswapd v4, vs1 383678df5aSAlbion Fung; CHECK-LE-P7-NEXT: vperm v2, v4, v2, v3 393678df5aSAlbion Fung; CHECK-LE-P7-NEXT: blr 403678df5aSAlbion Fung; 413678df5aSAlbion Fung; CHECK-LE-P8-LABEL: test: 423678df5aSAlbion Fung; CHECK-LE-P8: # %bb.0: # %entry 433678df5aSAlbion Fung; CHECK-LE-P8-NEXT: addis r3, r2, .LCPI0_0@toc@ha 44*335e8bf1SQuinn Pham; CHECK-LE-P8-NEXT: xscvdpsxws v3, f1 453678df5aSAlbion Fung; CHECK-LE-P8-NEXT: addi r3, r3, .LCPI0_0@toc@l 46*335e8bf1SQuinn Pham; CHECK-LE-P8-NEXT: lxvd2x vs0, 0, r3 47*335e8bf1SQuinn Pham; CHECK-LE-P8-NEXT: xxswapd v4, vs0 484195ed99SAlbion Fung; CHECK-LE-P8-NEXT: vperm v2, v3, v2, v4 493678df5aSAlbion Fung; CHECK-LE-P8-NEXT: blr 503678df5aSAlbion Fung; 513678df5aSAlbion Fung; CHECK-LE-P9-LABEL: test: 523678df5aSAlbion Fung; CHECK-LE-P9: # %bb.0: # %entry 533678df5aSAlbion Fung; CHECK-LE-P9-NEXT: xscvdpsxws f0, f1 543678df5aSAlbion Fung; CHECK-LE-P9-NEXT: xxinsertw v2, vs0, 0 553678df5aSAlbion Fung; CHECK-LE-P9-NEXT: blr 563678df5aSAlbion Fung; 573678df5aSAlbion Fung; CHECK-BE-P7-LABEL: test: 583678df5aSAlbion Fung; CHECK-BE-P7: # %bb.0: # %entry 593678df5aSAlbion Fung; CHECK-BE-P7-NEXT: xscvdpsxws f0, f1 603678df5aSAlbion Fung; CHECK-BE-P7-NEXT: addi r3, r1, -4 61300e1293SQiu Chaofan; CHECK-BE-P7-NEXT: addis r4, r2, .LCPI0_0@toc@ha 623678df5aSAlbion Fung; CHECK-BE-P7-NEXT: stfiwx f0, 0, r3 633678df5aSAlbion Fung; CHECK-BE-P7-NEXT: lwz r3, -4(r1) 643678df5aSAlbion Fung; CHECK-BE-P7-NEXT: stw r3, -32(r1) 65300e1293SQiu Chaofan; CHECK-BE-P7-NEXT: addi r3, r4, .LCPI0_0@toc@l 66300e1293SQiu Chaofan; CHECK-BE-P7-NEXT: addi r4, r1, -32 67300e1293SQiu Chaofan; CHECK-BE-P7-NEXT: lxvw4x v3, 0, r3 68300e1293SQiu Chaofan; CHECK-BE-P7-NEXT: lxvw4x v4, 0, r4 69300e1293SQiu Chaofan; CHECK-BE-P7-NEXT: vperm v2, v2, v4, v3 703678df5aSAlbion Fung; CHECK-BE-P7-NEXT: blr 713678df5aSAlbion Fung; 723678df5aSAlbion Fung; CHECK-BE-P8-LABEL: test: 733678df5aSAlbion Fung; CHECK-BE-P8: # %bb.0: # %entry 74300e1293SQiu Chaofan; CHECK-BE-P8-NEXT: xscvdpsxws v3, f1 75300e1293SQiu Chaofan; CHECK-BE-P8-NEXT: addis r3, r2, .LCPI0_0@toc@ha 76300e1293SQiu Chaofan; CHECK-BE-P8-NEXT: addi r3, r3, .LCPI0_0@toc@l 77300e1293SQiu Chaofan; CHECK-BE-P8-NEXT: lxvw4x v4, 0, r3 78300e1293SQiu Chaofan; CHECK-BE-P8-NEXT: vperm v2, v2, v3, v4 793678df5aSAlbion Fung; CHECK-BE-P8-NEXT: blr 803678df5aSAlbion Fung; 813678df5aSAlbion Fung; CHECK-BE-P9-LABEL: test: 823678df5aSAlbion Fung; CHECK-BE-P9: # %bb.0: # %entry 833678df5aSAlbion Fung; CHECK-BE-P9-NEXT: xscvdpsxws f0, f1 843678df5aSAlbion Fung; CHECK-BE-P9-NEXT: xxinsertw v2, vs0, 12 853678df5aSAlbion Fung; CHECK-BE-P9-NEXT: blr 863678df5aSAlbion Fungentry: 873678df5aSAlbion Fung %conv = fptosi double %b to i32 883678df5aSAlbion Fung %vecins = insertelement <4 x i32> %a, i32 %conv, i32 3 893678df5aSAlbion Fung ret <4 x i32> %vecins 903678df5aSAlbion Fung} 913678df5aSAlbion Fung 923678df5aSAlbion Fungdefine dso_local <4 x i32> @test2(<4 x i32> %a, float %b) { 933678df5aSAlbion Fung; CHECK-LE-P7-LABEL: test2: 943678df5aSAlbion Fung; CHECK-LE-P7: # %bb.0: # %entry 953678df5aSAlbion Fung; CHECK-LE-P7-NEXT: xscvdpsxws f0, f1 963678df5aSAlbion Fung; CHECK-LE-P7-NEXT: addi r3, r1, -4 973678df5aSAlbion Fung; CHECK-LE-P7-NEXT: addis r4, r2, .LCPI1_0@toc@ha 983678df5aSAlbion Fung; CHECK-LE-P7-NEXT: addi r4, r4, .LCPI1_0@toc@l 993678df5aSAlbion Fung; CHECK-LE-P7-NEXT: stfiwx f0, 0, r3 100*335e8bf1SQuinn Pham; CHECK-LE-P7-NEXT: lxvd2x vs0, 0, r4 1013678df5aSAlbion Fung; CHECK-LE-P7-NEXT: lwz r3, -4(r1) 1023678df5aSAlbion Fung; CHECK-LE-P7-NEXT: stw r3, -32(r1) 1033678df5aSAlbion Fung; CHECK-LE-P7-NEXT: addi r3, r1, -32 104*335e8bf1SQuinn Pham; CHECK-LE-P7-NEXT: xxswapd v3, vs0 105*335e8bf1SQuinn Pham; CHECK-LE-P7-NEXT: lxvd2x vs1, 0, r3 106*335e8bf1SQuinn Pham; CHECK-LE-P7-NEXT: xxswapd v4, vs1 1073678df5aSAlbion Fung; CHECK-LE-P7-NEXT: vperm v2, v4, v2, v3 1083678df5aSAlbion Fung; CHECK-LE-P7-NEXT: blr 1093678df5aSAlbion Fung; 1103678df5aSAlbion Fung; CHECK-LE-P8-LABEL: test2: 1113678df5aSAlbion Fung; CHECK-LE-P8: # %bb.0: # %entry 1123678df5aSAlbion Fung; CHECK-LE-P8-NEXT: addis r3, r2, .LCPI1_0@toc@ha 113*335e8bf1SQuinn Pham; CHECK-LE-P8-NEXT: xscvdpsxws v3, f1 1143678df5aSAlbion Fung; CHECK-LE-P8-NEXT: addi r3, r3, .LCPI1_0@toc@l 115*335e8bf1SQuinn Pham; CHECK-LE-P8-NEXT: lxvd2x vs0, 0, r3 116*335e8bf1SQuinn Pham; CHECK-LE-P8-NEXT: xxswapd v4, vs0 1174195ed99SAlbion Fung; CHECK-LE-P8-NEXT: vperm v2, v3, v2, v4 1183678df5aSAlbion Fung; CHECK-LE-P8-NEXT: blr 1193678df5aSAlbion Fung; 1203678df5aSAlbion Fung; CHECK-LE-P9-LABEL: test2: 1213678df5aSAlbion Fung; CHECK-LE-P9: # %bb.0: # %entry 1223678df5aSAlbion Fung; CHECK-LE-P9-NEXT: xscvdpsxws f0, f1 1233678df5aSAlbion Fung; CHECK-LE-P9-NEXT: xxinsertw v2, vs0, 0 1243678df5aSAlbion Fung; CHECK-LE-P9-NEXT: blr 1253678df5aSAlbion Fung; 1263678df5aSAlbion Fung; CHECK-BE-P7-LABEL: test2: 1273678df5aSAlbion Fung; CHECK-BE-P7: # %bb.0: # %entry 1283678df5aSAlbion Fung; CHECK-BE-P7-NEXT: xscvdpsxws f0, f1 1293678df5aSAlbion Fung; CHECK-BE-P7-NEXT: addi r3, r1, -4 130300e1293SQiu Chaofan; CHECK-BE-P7-NEXT: addis r4, r2, .LCPI1_0@toc@ha 1313678df5aSAlbion Fung; CHECK-BE-P7-NEXT: stfiwx f0, 0, r3 1323678df5aSAlbion Fung; CHECK-BE-P7-NEXT: lwz r3, -4(r1) 1333678df5aSAlbion Fung; CHECK-BE-P7-NEXT: stw r3, -32(r1) 134300e1293SQiu Chaofan; CHECK-BE-P7-NEXT: addi r3, r4, .LCPI1_0@toc@l 135300e1293SQiu Chaofan; CHECK-BE-P7-NEXT: addi r4, r1, -32 136300e1293SQiu Chaofan; CHECK-BE-P7-NEXT: lxvw4x v3, 0, r3 137300e1293SQiu Chaofan; CHECK-BE-P7-NEXT: lxvw4x v4, 0, r4 138300e1293SQiu Chaofan; CHECK-BE-P7-NEXT: vperm v2, v2, v4, v3 1393678df5aSAlbion Fung; CHECK-BE-P7-NEXT: blr 1403678df5aSAlbion Fung; 1413678df5aSAlbion Fung; CHECK-BE-P8-LABEL: test2: 1423678df5aSAlbion Fung; CHECK-BE-P8: # %bb.0: # %entry 143300e1293SQiu Chaofan; CHECK-BE-P8-NEXT: xscvdpsxws v3, f1 144300e1293SQiu Chaofan; CHECK-BE-P8-NEXT: addis r3, r2, .LCPI1_0@toc@ha 145300e1293SQiu Chaofan; CHECK-BE-P8-NEXT: addi r3, r3, .LCPI1_0@toc@l 146300e1293SQiu Chaofan; CHECK-BE-P8-NEXT: lxvw4x v4, 0, r3 147300e1293SQiu Chaofan; CHECK-BE-P8-NEXT: vperm v2, v2, v3, v4 1483678df5aSAlbion Fung; CHECK-BE-P8-NEXT: blr 1493678df5aSAlbion Fung; 1503678df5aSAlbion Fung; CHECK-BE-P9-LABEL: test2: 1513678df5aSAlbion Fung; CHECK-BE-P9: # %bb.0: # %entry 1523678df5aSAlbion Fung; CHECK-BE-P9-NEXT: xscvdpsxws f0, f1 1533678df5aSAlbion Fung; CHECK-BE-P9-NEXT: xxinsertw v2, vs0, 12 1543678df5aSAlbion Fung; CHECK-BE-P9-NEXT: blr 1553678df5aSAlbion Fungentry: 1563678df5aSAlbion Fung %conv = fptosi float %b to i32 1573678df5aSAlbion Fung %vecins = insertelement <4 x i32> %a, i32 %conv, i32 3 1583678df5aSAlbion Fung ret <4 x i32> %vecins 1593678df5aSAlbion Fung} 1603678df5aSAlbion Fung 1613678df5aSAlbion Fungdefine dso_local <4 x i32> @test3(<4 x i32> %a, double %b) { 1623678df5aSAlbion Fung; CHECK-LE-P7-LABEL: test3: 1633678df5aSAlbion Fung; CHECK-LE-P7: # %bb.0: # %entry 1643678df5aSAlbion Fung; CHECK-LE-P7-NEXT: xscvdpuxws f0, f1 1653678df5aSAlbion Fung; CHECK-LE-P7-NEXT: addi r3, r1, -4 1663678df5aSAlbion Fung; CHECK-LE-P7-NEXT: addis r4, r2, .LCPI2_0@toc@ha 1673678df5aSAlbion Fung; CHECK-LE-P7-NEXT: addi r4, r4, .LCPI2_0@toc@l 1683678df5aSAlbion Fung; CHECK-LE-P7-NEXT: stfiwx f0, 0, r3 169*335e8bf1SQuinn Pham; CHECK-LE-P7-NEXT: lxvd2x vs0, 0, r4 1703678df5aSAlbion Fung; CHECK-LE-P7-NEXT: lwz r3, -4(r1) 1713678df5aSAlbion Fung; CHECK-LE-P7-NEXT: stw r3, -32(r1) 1723678df5aSAlbion Fung; CHECK-LE-P7-NEXT: addi r3, r1, -32 173*335e8bf1SQuinn Pham; CHECK-LE-P7-NEXT: xxswapd v3, vs0 174*335e8bf1SQuinn Pham; CHECK-LE-P7-NEXT: lxvd2x vs1, 0, r3 175*335e8bf1SQuinn Pham; CHECK-LE-P7-NEXT: xxswapd v4, vs1 1763678df5aSAlbion Fung; CHECK-LE-P7-NEXT: vperm v2, v4, v2, v3 1773678df5aSAlbion Fung; CHECK-LE-P7-NEXT: blr 1783678df5aSAlbion Fung; 1793678df5aSAlbion Fung; CHECK-LE-P8-LABEL: test3: 1803678df5aSAlbion Fung; CHECK-LE-P8: # %bb.0: # %entry 1813678df5aSAlbion Fung; CHECK-LE-P8-NEXT: addis r3, r2, .LCPI2_0@toc@ha 182*335e8bf1SQuinn Pham; CHECK-LE-P8-NEXT: xscvdpuxws v3, f1 1833678df5aSAlbion Fung; CHECK-LE-P8-NEXT: addi r3, r3, .LCPI2_0@toc@l 184*335e8bf1SQuinn Pham; CHECK-LE-P8-NEXT: lxvd2x vs0, 0, r3 185*335e8bf1SQuinn Pham; CHECK-LE-P8-NEXT: xxswapd v4, vs0 1864195ed99SAlbion Fung; CHECK-LE-P8-NEXT: vperm v2, v3, v2, v4 1873678df5aSAlbion Fung; CHECK-LE-P8-NEXT: blr 1883678df5aSAlbion Fung; 1893678df5aSAlbion Fung; CHECK-LE-P9-LABEL: test3: 1903678df5aSAlbion Fung; CHECK-LE-P9: # %bb.0: # %entry 1913678df5aSAlbion Fung; CHECK-LE-P9-NEXT: xscvdpuxws f0, f1 1923678df5aSAlbion Fung; CHECK-LE-P9-NEXT: xxinsertw v2, vs0, 0 1933678df5aSAlbion Fung; CHECK-LE-P9-NEXT: blr 1943678df5aSAlbion Fung; 1953678df5aSAlbion Fung; CHECK-BE-P7-LABEL: test3: 1963678df5aSAlbion Fung; CHECK-BE-P7: # %bb.0: # %entry 1973678df5aSAlbion Fung; CHECK-BE-P7-NEXT: xscvdpuxws f0, f1 1983678df5aSAlbion Fung; CHECK-BE-P7-NEXT: addi r3, r1, -4 199300e1293SQiu Chaofan; CHECK-BE-P7-NEXT: addis r4, r2, .LCPI2_0@toc@ha 2003678df5aSAlbion Fung; CHECK-BE-P7-NEXT: stfiwx f0, 0, r3 2013678df5aSAlbion Fung; CHECK-BE-P7-NEXT: lwz r3, -4(r1) 2023678df5aSAlbion Fung; CHECK-BE-P7-NEXT: stw r3, -32(r1) 203300e1293SQiu Chaofan; CHECK-BE-P7-NEXT: addi r3, r4, .LCPI2_0@toc@l 204300e1293SQiu Chaofan; CHECK-BE-P7-NEXT: addi r4, r1, -32 205300e1293SQiu Chaofan; CHECK-BE-P7-NEXT: lxvw4x v3, 0, r3 206300e1293SQiu Chaofan; CHECK-BE-P7-NEXT: lxvw4x v4, 0, r4 207300e1293SQiu Chaofan; CHECK-BE-P7-NEXT: vperm v2, v2, v4, v3 2083678df5aSAlbion Fung; CHECK-BE-P7-NEXT: blr 2093678df5aSAlbion Fung; 2103678df5aSAlbion Fung; CHECK-BE-P8-LABEL: test3: 2113678df5aSAlbion Fung; CHECK-BE-P8: # %bb.0: # %entry 212300e1293SQiu Chaofan; CHECK-BE-P8-NEXT: xscvdpuxws v3, f1 213300e1293SQiu Chaofan; CHECK-BE-P8-NEXT: addis r3, r2, .LCPI2_0@toc@ha 214300e1293SQiu Chaofan; CHECK-BE-P8-NEXT: addi r3, r3, .LCPI2_0@toc@l 215300e1293SQiu Chaofan; CHECK-BE-P8-NEXT: lxvw4x v4, 0, r3 216300e1293SQiu Chaofan; CHECK-BE-P8-NEXT: vperm v2, v2, v3, v4 2173678df5aSAlbion Fung; CHECK-BE-P8-NEXT: blr 2183678df5aSAlbion Fung; 2193678df5aSAlbion Fung; CHECK-BE-P9-LABEL: test3: 2203678df5aSAlbion Fung; CHECK-BE-P9: # %bb.0: # %entry 2213678df5aSAlbion Fung; CHECK-BE-P9-NEXT: xscvdpuxws f0, f1 2223678df5aSAlbion Fung; CHECK-BE-P9-NEXT: xxinsertw v2, vs0, 12 2233678df5aSAlbion Fung; CHECK-BE-P9-NEXT: blr 2243678df5aSAlbion Fungentry: 2253678df5aSAlbion Fung %conv = fptoui double %b to i32 2263678df5aSAlbion Fung %vecins = insertelement <4 x i32> %a, i32 %conv, i32 3 2273678df5aSAlbion Fung ret <4 x i32> %vecins 2283678df5aSAlbion Fung} 2293678df5aSAlbion Fung 2303678df5aSAlbion Fungdefine dso_local <4 x i32> @test4(<4 x i32> %a, float %b) { 2313678df5aSAlbion Fung; CHECK-LE-P7-LABEL: test4: 2323678df5aSAlbion Fung; CHECK-LE-P7: # %bb.0: # %entry 2333678df5aSAlbion Fung; CHECK-LE-P7-NEXT: xscvdpuxws f0, f1 2343678df5aSAlbion Fung; CHECK-LE-P7-NEXT: addi r3, r1, -4 2353678df5aSAlbion Fung; CHECK-LE-P7-NEXT: addis r4, r2, .LCPI3_0@toc@ha 2363678df5aSAlbion Fung; CHECK-LE-P7-NEXT: addi r4, r4, .LCPI3_0@toc@l 2373678df5aSAlbion Fung; CHECK-LE-P7-NEXT: stfiwx f0, 0, r3 238*335e8bf1SQuinn Pham; CHECK-LE-P7-NEXT: lxvd2x vs0, 0, r4 2393678df5aSAlbion Fung; CHECK-LE-P7-NEXT: lwz r3, -4(r1) 2403678df5aSAlbion Fung; CHECK-LE-P7-NEXT: stw r3, -32(r1) 2413678df5aSAlbion Fung; CHECK-LE-P7-NEXT: addi r3, r1, -32 242*335e8bf1SQuinn Pham; CHECK-LE-P7-NEXT: xxswapd v3, vs0 243*335e8bf1SQuinn Pham; CHECK-LE-P7-NEXT: lxvd2x vs1, 0, r3 244*335e8bf1SQuinn Pham; CHECK-LE-P7-NEXT: xxswapd v4, vs1 2453678df5aSAlbion Fung; CHECK-LE-P7-NEXT: vperm v2, v4, v2, v3 2463678df5aSAlbion Fung; CHECK-LE-P7-NEXT: blr 2473678df5aSAlbion Fung; 2483678df5aSAlbion Fung; CHECK-LE-P8-LABEL: test4: 2493678df5aSAlbion Fung; CHECK-LE-P8: # %bb.0: # %entry 2503678df5aSAlbion Fung; CHECK-LE-P8-NEXT: addis r3, r2, .LCPI3_0@toc@ha 251*335e8bf1SQuinn Pham; CHECK-LE-P8-NEXT: xscvdpuxws v3, f1 2523678df5aSAlbion Fung; CHECK-LE-P8-NEXT: addi r3, r3, .LCPI3_0@toc@l 253*335e8bf1SQuinn Pham; CHECK-LE-P8-NEXT: lxvd2x vs0, 0, r3 254*335e8bf1SQuinn Pham; CHECK-LE-P8-NEXT: xxswapd v4, vs0 2554195ed99SAlbion Fung; CHECK-LE-P8-NEXT: vperm v2, v3, v2, v4 2563678df5aSAlbion Fung; CHECK-LE-P8-NEXT: blr 2573678df5aSAlbion Fung; 2583678df5aSAlbion Fung; CHECK-LE-P9-LABEL: test4: 2593678df5aSAlbion Fung; CHECK-LE-P9: # %bb.0: # %entry 2603678df5aSAlbion Fung; CHECK-LE-P9-NEXT: xscvdpuxws f0, f1 2613678df5aSAlbion Fung; CHECK-LE-P9-NEXT: xxinsertw v2, vs0, 0 2623678df5aSAlbion Fung; CHECK-LE-P9-NEXT: blr 2633678df5aSAlbion Fung; 2643678df5aSAlbion Fung; CHECK-BE-P7-LABEL: test4: 2653678df5aSAlbion Fung; CHECK-BE-P7: # %bb.0: # %entry 2663678df5aSAlbion Fung; CHECK-BE-P7-NEXT: xscvdpuxws f0, f1 2673678df5aSAlbion Fung; CHECK-BE-P7-NEXT: addi r3, r1, -4 268300e1293SQiu Chaofan; CHECK-BE-P7-NEXT: addis r4, r2, .LCPI3_0@toc@ha 2693678df5aSAlbion Fung; CHECK-BE-P7-NEXT: stfiwx f0, 0, r3 2703678df5aSAlbion Fung; CHECK-BE-P7-NEXT: lwz r3, -4(r1) 2713678df5aSAlbion Fung; CHECK-BE-P7-NEXT: stw r3, -32(r1) 272300e1293SQiu Chaofan; CHECK-BE-P7-NEXT: addi r3, r4, .LCPI3_0@toc@l 273300e1293SQiu Chaofan; CHECK-BE-P7-NEXT: addi r4, r1, -32 274300e1293SQiu Chaofan; CHECK-BE-P7-NEXT: lxvw4x v3, 0, r3 275300e1293SQiu Chaofan; CHECK-BE-P7-NEXT: lxvw4x v4, 0, r4 276300e1293SQiu Chaofan; CHECK-BE-P7-NEXT: vperm v2, v2, v4, v3 2773678df5aSAlbion Fung; CHECK-BE-P7-NEXT: blr 2783678df5aSAlbion Fung; 2793678df5aSAlbion Fung; CHECK-BE-P8-LABEL: test4: 2803678df5aSAlbion Fung; CHECK-BE-P8: # %bb.0: # %entry 281300e1293SQiu Chaofan; CHECK-BE-P8-NEXT: xscvdpuxws v3, f1 282300e1293SQiu Chaofan; CHECK-BE-P8-NEXT: addis r3, r2, .LCPI3_0@toc@ha 283300e1293SQiu Chaofan; CHECK-BE-P8-NEXT: addi r3, r3, .LCPI3_0@toc@l 284300e1293SQiu Chaofan; CHECK-BE-P8-NEXT: lxvw4x v4, 0, r3 285300e1293SQiu Chaofan; CHECK-BE-P8-NEXT: vperm v2, v2, v3, v4 2863678df5aSAlbion Fung; CHECK-BE-P8-NEXT: blr 2873678df5aSAlbion Fung; 2883678df5aSAlbion Fung; CHECK-BE-P9-LABEL: test4: 2893678df5aSAlbion Fung; CHECK-BE-P9: # %bb.0: # %entry 2903678df5aSAlbion Fung; CHECK-BE-P9-NEXT: xscvdpuxws f0, f1 2913678df5aSAlbion Fung; CHECK-BE-P9-NEXT: xxinsertw v2, vs0, 12 2923678df5aSAlbion Fung; CHECK-BE-P9-NEXT: blr 2933678df5aSAlbion Fungentry: 2943678df5aSAlbion Fung %conv = fptoui float %b to i32 2953678df5aSAlbion Fung %vecins = insertelement <4 x i32> %a, i32 %conv, i32 3 2963678df5aSAlbion Fung ret <4 x i32> %vecins 2973678df5aSAlbion Fung} 298