brintos

brintos / llvm-project-archived public Read only

0
0
Text · 7.4 KiB · 9355341 Raw
271 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52 3; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z13 | FileCheck %s4 5define <8 x i16> @f1(<16 x i8> %a) {6; CHECK-LABEL: f1:7; CHECK:       # %bb.0: # %start8; CHECK-NEXT:    vuphb %v24, %v249; CHECK-NEXT:    br %r1410start:11  %0 = shufflevector <16 x i8> %a, <16 x i8> poison, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>12  %1 = sext <8 x i8> %0 to <8 x i16>13  ret <8 x i16> %114}15 16define <8 x i16> @f2(<16 x i8> %a) {17; CHECK-LABEL: f2:18; CHECK:       # %bb.0: # %start19; CHECK-NEXT:    vuplb %v24, %v2420; CHECK-NEXT:    br %r1421start:22  %0 = shufflevector <16 x i8> %a, <16 x i8> poison, <8 x i32> <i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>23  %1 = sext <8 x i8> %0 to <8 x i16>24  ret <8 x i16> %125}26 27define <4 x i32> @f3(<8 x i16> %a) {28; CHECK-LABEL: f3:29; CHECK:       # %bb.0: # %start30; CHECK-NEXT:    vuphh %v24, %v2431; CHECK-NEXT:    br %r1432start:33  %0 = shufflevector <8 x i16> %a, <8 x i16> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 3>34  %1 = sext <4 x i16> %0 to <4 x i32>35  ret <4 x i32> %136}37 38define <4 x i32> @f4(<8 x i16> %a) {39; CHECK-LABEL: f4:40; CHECK:       # %bb.0: # %start41; CHECK-NEXT:    vuplhw %v24, %v2442; CHECK-NEXT:    br %r1443start:44  %0 = shufflevector <8 x i16> %a, <8 x i16> poison, <4 x i32> <i32 4, i32 5, i32 6, i32 7>45  %1 = sext <4 x i16> %0 to <4 x i32>46  ret <4 x i32> %147}48 49define <4 x i32> @f5(<16 x i8> %a) {50; CHECK-LABEL: f5:51; CHECK:       # %bb.0: # %start52; CHECK-NEXT:    vuphb %v0, %v2453; CHECK-NEXT:    vuphh %v24, %v054; CHECK-NEXT:    br %r1455start:56  %0 = shufflevector <16 x i8> %a, <16 x i8> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 3>57  %1 = sext <4 x i8> %0 to <4 x i32>58  ret <4 x i32> %159}60 61define <4 x i32> @f6(<16 x i8> %a) {62; CHECK-LABEL: f6:63; CHECK:       # %bb.0: # %start64; CHECK-NEXT:    vuphb %v0, %v2465; CHECK-NEXT:    vuplhw %v24, %v066; CHECK-NEXT:    br %r1467start:68  %0 = shufflevector <16 x i8> %a, <16 x i8> poison, <4 x i32> <i32 4, i32 5, i32 6, i32 7>69  %1 = sext <4 x i8> %0 to <4 x i32>70  ret <4 x i32> %171}72 73define <4 x i32> @f7(<16 x i8> %a) {74; CHECK-LABEL: f7:75; CHECK:       # %bb.0: # %start76; CHECK-NEXT:    vuplb %v0, %v2477; CHECK-NEXT:    vuphh %v24, %v078; CHECK-NEXT:    br %r1479start:80  %0 = shufflevector <16 x i8> %a, <16 x i8> poison, <4 x i32> <i32 8, i32 9, i32 10, i32 11>81  %1 = sext <4 x i8> %0 to <4 x i32>82  ret <4 x i32> %183}84 85define <4 x i32> @f8(<16 x i8> %a) {86; CHECK-LABEL: f8:87; CHECK:       # %bb.0: # %start88; CHECK-NEXT:    vuplb %v0, %v2489; CHECK-NEXT:    vuplhw %v24, %v090; CHECK-NEXT:    br %r1491start:92  %0 = shufflevector <16 x i8> %a, <16 x i8> poison, <4 x i32> <i32 12, i32 13, i32 14, i32 15>93  %1 = sext <4 x i8> %0 to <4 x i32>94  ret <4 x i32> %195}96 97define <2 x i64> @f9(<4 x i32> %a) {98; CHECK-LABEL: f9:99; CHECK:       # %bb.0: # %start100; CHECK-NEXT:    vuphf %v24, %v24101; CHECK-NEXT:    br %r14102start:103  %0 = shufflevector <4 x i32> %a, <4 x i32> poison, <2 x i32> <i32 0, i32 1>104  %1 = sext <2 x i32> %0 to <2 x i64>105  ret <2 x i64> %1106}107 108define <2 x i64> @f10(<4 x i32> %a) {109; CHECK-LABEL: f10:110; CHECK:       # %bb.0: # %start111; CHECK-NEXT:    vuplf %v24, %v24112; CHECK-NEXT:    br %r14113start:114  %0 = shufflevector <4 x i32> %a, <4 x i32> poison, <2 x i32> <i32 2, i32 3>115  %1 = sext <2 x i32> %0 to <2 x i64>116  ret <2 x i64> %1117}118 119define <2 x i64> @f11(<8 x i16> %a) {120; CHECK-LABEL: f11:121; CHECK:       # %bb.0: # %start122; CHECK-NEXT:    vuphh %v0, %v24123; CHECK-NEXT:    vuphf %v24, %v0124; CHECK-NEXT:    br %r14125start:126  %0 = shufflevector <8 x i16> %a, <8 x i16> poison, <2 x i32> <i32 0, i32 1>127  %1 = sext <2 x i16> %0 to <2 x i64>128  ret <2 x i64> %1129}130 131define <2 x i64> @f12(<8 x i16> %a) {132; CHECK-LABEL: f12:133; CHECK:       # %bb.0: # %start134; CHECK-NEXT:    vuphh %v0, %v24135; CHECK-NEXT:    vuplf %v24, %v0136; CHECK-NEXT:    br %r14137start:138  %0 = shufflevector <8 x i16> %a, <8 x i16> poison, <2 x i32> <i32 2, i32 3>139  %1 = sext <2 x i16> %0 to <2 x i64>140  ret <2 x i64> %1141}142 143define <2 x i64> @f13(<8 x i16> %a) {144; CHECK-LABEL: f13:145; CHECK:       # %bb.0: # %start146; CHECK-NEXT:    vuplhw %v0, %v24147; CHECK-NEXT:    vuphf %v24, %v0148; CHECK-NEXT:    br %r14149start:150  %0 = shufflevector <8 x i16> %a, <8 x i16> poison, <2 x i32> <i32 4, i32 5>151  %1 = sext <2 x i16> %0 to <2 x i64>152  ret <2 x i64> %1153}154 155define <2 x i64> @f14(<8 x i16> %a) {156; CHECK-LABEL: f14:157; CHECK:       # %bb.0: # %start158; CHECK-NEXT:    vuplhw %v0, %v24159; CHECK-NEXT:    vuplf %v24, %v0160; CHECK-NEXT:    br %r14161start:162  %0 = shufflevector <8 x i16> %a, <8 x i16> poison, <2 x i32> <i32 6, i32 7>163  %1 = sext <2 x i16> %0 to <2 x i64>164  ret <2 x i64> %1165}166 167define <2 x i64> @f15(<16 x i8> %a) {168; CHECK-LABEL: f15:169; CHECK:       # %bb.0: # %start170; CHECK-NEXT:    vuphb %v0, %v24171; CHECK-NEXT:    vuphh %v0, %v0172; CHECK-NEXT:    vuphf %v24, %v0173; CHECK-NEXT:    br %r14174start:175  %0 = shufflevector <16 x i8> %a, <16 x i8> poison, <2 x i32> <i32 0, i32 1>176  %1 = sext <2 x i8> %0 to <2 x i64>177  ret <2 x i64> %1178}179 180define <2 x i64> @f16(<16 x i8> %a) {181; CHECK-LABEL: f16:182; CHECK:       # %bb.0: # %start183; CHECK-NEXT:    vuphb %v0, %v24184; CHECK-NEXT:    vuphh %v0, %v0185; CHECK-NEXT:    vuplf %v24, %v0186; CHECK-NEXT:    br %r14187start:188  %0 = shufflevector <16 x i8> %a, <16 x i8> poison, <2 x i32> <i32 2, i32 3>189  %1 = sext <2 x i8> %0 to <2 x i64>190  ret <2 x i64> %1191}192 193define <2 x i64> @f17(<16 x i8> %a) {194; CHECK-LABEL: f17:195; CHECK:       # %bb.0: # %start196; CHECK-NEXT:    vuphb %v0, %v24197; CHECK-NEXT:    vuplhw %v0, %v0198; CHECK-NEXT:    vuphf %v24, %v0199; CHECK-NEXT:    br %r14200start:201  %0 = shufflevector <16 x i8> %a, <16 x i8> poison, <2 x i32> <i32 4, i32 5>202  %1 = sext <2 x i8> %0 to <2 x i64>203  ret <2 x i64> %1204}205 206define <2 x i64> @f18(<16 x i8> %a) {207; CHECK-LABEL: f18:208; CHECK:       # %bb.0: # %start209; CHECK-NEXT:    vuphb %v0, %v24210; CHECK-NEXT:    vuplhw %v0, %v0211; CHECK-NEXT:    vuplf %v24, %v0212; CHECK-NEXT:    br %r14213start:214  %0 = shufflevector <16 x i8> %a, <16 x i8> poison, <2 x i32> <i32 6, i32 7>215  %1 = sext <2 x i8> %0 to <2 x i64>216  ret <2 x i64> %1217}218 219define <2 x i64> @f19(<16 x i8> %a) {220; CHECK-LABEL: f19:221; CHECK:       # %bb.0: # %start222; CHECK-NEXT:    vuplb %v0, %v24223; CHECK-NEXT:    vuphh %v0, %v0224; CHECK-NEXT:    vuphf %v24, %v0225; CHECK-NEXT:    br %r14226start:227  %0 = shufflevector <16 x i8> %a, <16 x i8> poison, <2 x i32> <i32 8, i32 9>228  %1 = sext <2 x i8> %0 to <2 x i64>229  ret <2 x i64> %1230}231 232define <2 x i64> @f20(<16 x i8> %a) {233; CHECK-LABEL: f20:234; CHECK:       # %bb.0: # %start235; CHECK-NEXT:    vuplb %v0, %v24236; CHECK-NEXT:    vuphh %v0, %v0237; CHECK-NEXT:    vuplf %v24, %v0238; CHECK-NEXT:    br %r14239start:240  %0 = shufflevector <16 x i8> %a, <16 x i8> poison, <2 x i32> <i32 10, i32 11>241  %1 = sext <2 x i8> %0 to <2 x i64>242  ret <2 x i64> %1243}244 245define <2 x i64> @f21(<16 x i8> %a) {246; CHECK-LABEL: f21:247; CHECK:       # %bb.0: # %start248; CHECK-NEXT:    vuplb %v0, %v24249; CHECK-NEXT:    vuplhw %v0, %v0250; CHECK-NEXT:    vuphf %v24, %v0251; CHECK-NEXT:    br %r14252start:253  %0 = shufflevector <16 x i8> %a, <16 x i8> poison, <2 x i32> <i32 12, i32 13>254  %1 = sext <2 x i8> %0 to <2 x i64>255  ret <2 x i64> %1256}257 258define <2 x i64> @f22(<16 x i8> %a) {259; CHECK-LABEL: f22:260; CHECK:       # %bb.0: # %start261; CHECK-NEXT:    vuplb %v0, %v24262; CHECK-NEXT:    vuplhw %v0, %v0263; CHECK-NEXT:    vuplf %v24, %v0264; CHECK-NEXT:    br %r14265start:266  %0 = shufflevector <16 x i8> %a, <16 x i8> poison, <2 x i32> <i32 14, i32 15>267  %1 = sext <2 x i8> %0 to <2 x i64>268  ret <2 x i64> %1269}270 271