brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.1 KiB · 9831de5 Raw
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