1 ; Note: This test is disabled until VSX is enabled for LE, as otherwise
2 ; we don't get the correct code gen.
3 ; RUN: llc -mcpu=pwr8 -mtriple=powerpc64-unknown-linux-gnu < %s
4 ; FIXME: Remove this and all above lines when VSX is enabled for LE.
6 ; R;UN: llc -mcpu=pwr8 -mattr=+vsx -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s
8 define <2 x double> @testi0(<2 x double>* %p1, double* %p2) {
9 %v = load <2 x double>* %p1
11 %r = insertelement <2 x double> %v, double %s, i32 0
15 ; CHECK: lxvd2x 0, 0, 3
16 ; CHECK: lxsdx 34, 0, 4
17 ; CHECK: xxpermdi 0, 0, 0, 2
18 ; CHECK: xxpermdi 1, 34, 34, 0
19 ; CHECK: xxpermdi 34, 0, 1, 1
22 define <2 x double> @testi1(<2 x double>* %p1, double* %p2) {
23 %v = load <2 x double>* %p1
25 %r = insertelement <2 x double> %v, double %s, i32 1
29 ; CHECK: lxvd2x 0, 0, 3
30 ; CHECK: lxsdx 34, 0, 4
31 ; CHECK: xxpermdi 0, 0, 0, 2
32 ; CHECK: xxpermdi 1, 34, 34, 0
33 ; CHECK: xxpermdi 34, 1, 0, 3
36 define double @teste0(<2 x double>* %p1) {
37 %v = load <2 x double>* %p1
38 %r = extractelement <2 x double> %v, i32 0
41 ; FIXME: Swap optimization will collapse this into lxvd2x 1, 0, 3.
44 ; CHECK: lxvd2x 0, 0, 3
45 ; CHECK: xxpermdi 0, 0, 0, 2
46 ; CHECK: xxpermdi 1, 0, 0, 2
49 define double @teste1(<2 x double>* %p1) {
50 %v = load <2 x double>* %p1
51 %r = extractelement <2 x double> %v, i32 1
55 ; CHECK: lxvd2x 0, 0, 3
56 ; CHECK: xxpermdi 1, 0, 0, 2