56 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -verify-machineinstrs -mcpu=pwr8 -mtriple=powerpc64le-unknown-linux-gnu -mattr=+power8-vector < %s | FileCheck %s3 4define void @VPKUDUM_unary(ptr %A) {5; CHECK-LABEL: VPKUDUM_unary:6; CHECK: # %bb.0: # %entry7; CHECK-NEXT: lxvd2x 0, 0, 38; CHECK-NEXT: xxswapd 34, 09; CHECK-NEXT: vpkudum 2, 2, 210; CHECK-NEXT: xxswapd 0, 3411; CHECK-NEXT: stxvd2x 0, 0, 312; CHECK-NEXT: blr13entry:14 %tmp = load <2 x i64>, ptr %A15 %tmp2 = bitcast <2 x i64> %tmp to <4 x i32>16 %tmp3 = extractelement <4 x i32> %tmp2, i32 017 %tmp4 = extractelement <4 x i32> %tmp2, i32 218 %tmp5 = insertelement <4 x i32> undef, i32 %tmp3, i32 019 %tmp6 = insertelement <4 x i32> %tmp5, i32 %tmp4, i32 120 %tmp7 = insertelement <4 x i32> %tmp6, i32 %tmp3, i32 221 %tmp8 = insertelement <4 x i32> %tmp7, i32 %tmp4, i32 322 %tmp9 = bitcast <4 x i32> %tmp8 to <2 x i64>23 store <2 x i64> %tmp9, ptr %A24 ret void25}26 27define void @VPKUDUM(ptr %A, ptr %B) {28; CHECK-LABEL: VPKUDUM:29; CHECK: # %bb.0: # %entry30; CHECK-NEXT: lxvd2x 0, 0, 331; CHECK-NEXT: xxswapd 34, 032; CHECK-NEXT: lxvd2x 0, 0, 433; CHECK-NEXT: xxswapd 35, 034; CHECK-NEXT: vpkudum 2, 3, 235; CHECK-NEXT: xxswapd 0, 3436; CHECK-NEXT: stxvd2x 0, 0, 337; CHECK-NEXT: blr38entry:39 %tmp = load <2 x i64>, ptr %A40 %tmp2 = bitcast <2 x i64> %tmp to <4 x i32>41 %tmp3 = load <2 x i64>, ptr %B42 %tmp4 = bitcast <2 x i64> %tmp3 to <4 x i32>43 %tmp5 = extractelement <4 x i32> %tmp2, i32 044 %tmp6 = extractelement <4 x i32> %tmp2, i32 245 %tmp7 = extractelement <4 x i32> %tmp4, i32 046 %tmp8 = extractelement <4 x i32> %tmp4, i32 247 %tmp9 = insertelement <4 x i32> undef, i32 %tmp5, i32 048 %tmp10 = insertelement <4 x i32> %tmp9, i32 %tmp6, i32 149 %tmp11 = insertelement <4 x i32> %tmp10, i32 %tmp7, i32 250 %tmp12 = insertelement <4 x i32> %tmp11, i32 %tmp8, i32 351 %tmp13 = bitcast <4 x i32> %tmp12 to <2 x i64>52 store <2 x i64> %tmp13, ptr %A53 ret void54}55 56