92 lines · plain
1; Test that vector sexts are done efficently with unpack instructions also in2; case of fewer elements than allowed, e.g. <2 x i32>.3;4; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z13 | FileCheck %s5 6 7define <2 x i16> @fun1(<2 x i8> %val1) {8; CHECK-LABEL: fun1:9; CHECK: vuphb %v24, %v2410; CHECK-NEXT: br %r1411 %z = sext <2 x i8> %val1 to <2 x i16>12 ret <2 x i16> %z13}14 15define <2 x i32> @fun2(<2 x i8> %val1) {16; CHECK-LABEL: fun2:17; CHECK: vuphb %v0, %v2418; CHECK-NEXT: vuphh %v24, %v019; CHECK-NEXT: br %r1420 %z = sext <2 x i8> %val1 to <2 x i32>21 ret <2 x i32> %z22}23 24define <2 x i64> @fun3(<2 x i8> %val1) {25; CHECK-LABEL: fun3:26; CHECK: vuphb %v0, %v2427; CHECK-NEXT: vuphh %v0, %v028; CHECK-NEXT: vuphf %v24, %v029; CHECK-NEXT: br %r1430 %z = sext <2 x i8> %val1 to <2 x i64>31 ret <2 x i64> %z32}33 34define <2 x i32> @fun4(<2 x i16> %val1) {35; CHECK-LABEL: fun4:36; CHECK: vuphh %v24, %v2437; CHECK-NEXT: br %r1438 %z = sext <2 x i16> %val1 to <2 x i32>39 ret <2 x i32> %z40}41 42define <2 x i64> @fun5(<2 x i16> %val1) {43; CHECK-LABEL: fun5:44; CHECK: vuphh %v0, %v2445; CHECK-NEXT: vuphf %v24, %v046; CHECK-NEXT: br %r1447 %z = sext <2 x i16> %val1 to <2 x i64>48 ret <2 x i64> %z49}50 51define <2 x i64> @fun6(<2 x i32> %val1) {52; CHECK-LABEL: fun6:53; CHECK: vuphf %v24, %v2454; CHECK-NEXT: br %r1455 %z = sext <2 x i32> %val1 to <2 x i64>56 ret <2 x i64> %z57}58 59define <4 x i16> @fun7(<4 x i8> %val1) {60; CHECK-LABEL: fun7:61; CHECK: vuphb %v24, %v2462; CHECK-NEXT: br %r1463 %z = sext <4 x i8> %val1 to <4 x i16>64 ret <4 x i16> %z65}66 67define <4 x i32> @fun8(<4 x i8> %val1) {68; CHECK-LABEL: fun8:69; CHECK: vuphb %v0, %v2470; CHECK-NEXT: vuphh %v24, %v071; CHECK-NEXT: br %r1472 %z = sext <4 x i8> %val1 to <4 x i32>73 ret <4 x i32> %z74}75 76define <4 x i32> @fun9(<4 x i16> %val1) {77; CHECK-LABEL: fun9:78; CHECK: vuphh %v24, %v2479; CHECK-NEXT: br %r1480 %z = sext <4 x i16> %val1 to <4 x i32>81 ret <4 x i32> %z82}83 84define <8 x i16> @fun10(<8 x i8> %val1) {85; CHECK-LABEL: fun10:86; CHECK: vuphb %v24, %v2487; CHECK-NEXT: br %r1488 %z = sext <8 x i8> %val1 to <8 x i16>89 ret <8 x i16> %z90}91 92