80 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=z17 | FileCheck %s4 5define i128 @f1(<2 x i64> %a) {6; CHECK-LABEL: f1:7; CHECK: # %bb.0: # %start8; CHECK-NEXT: vuplhg %v0, %v249; CHECK-NEXT: vst %v0, 0(%r2), 310; CHECK-NEXT: br %r1411start:12 %0 = extractelement <2 x i64> %a, i32 013 %1 = zext i64 %0 to i12814 ret i128 %115}16 17define i128 @f2(<2 x i64> %a) {18; CHECK-LABEL: f2:19; CHECK: # %bb.0: # %start20; CHECK-NEXT: vupllg %v0, %v2421; CHECK-NEXT: vst %v0, 0(%r2), 322; CHECK-NEXT: br %r1423start:24 %0 = extractelement <2 x i64> %a, i32 125 %1 = zext i64 %0 to i12826 ret i128 %127}28 29define i128 @f3(<4 x i32> %a) {30; CHECK-LABEL: f3:31; CHECK: # %bb.0: # %start32; CHECK-NEXT: vuplhf %v0, %v2433; CHECK-NEXT: vuplhg %v0, %v034; CHECK-NEXT: vst %v0, 0(%r2), 335; CHECK-NEXT: br %r1436start:37 %0 = extractelement <4 x i32> %a, i32 038 %1 = zext i32 %0 to i12839 ret i128 %140}41 42define i128 @f4(<4 x i32> %a) {43; CHECK-LABEL: f4:44; CHECK: # %bb.0: # %start45; CHECK-NEXT: vupllf %v0, %v2446; CHECK-NEXT: vuplhg %v0, %v047; CHECK-NEXT: vst %v0, 0(%r2), 348; CHECK-NEXT: br %r1449start:50 %0 = extractelement <4 x i32> %a, i32 151 %1 = zext i32 %0 to i12852 ret i128 %153}54 55define i128 @f5(<4 x i32> %a) {56; CHECK-LABEL: f5:57; CHECK: # %bb.0: # %start58; CHECK-NEXT: vuplhf %v0, %v2459; CHECK-NEXT: vupllg %v0, %v060; CHECK-NEXT: vst %v0, 0(%r2), 361; CHECK-NEXT: br %r1462start:63 %0 = extractelement <4 x i32> %a, i32 264 %1 = zext i32 %0 to i12865 ret i128 %166}67 68define i128 @f6(<4 x i32> %a) {69; CHECK-LABEL: f6:70; CHECK: # %bb.0: # %start71; CHECK-NEXT: vupllf %v0, %v2472; CHECK-NEXT: vupllg %v0, %v073; CHECK-NEXT: vst %v0, 0(%r2), 374; CHECK-NEXT: br %r1475start:76 %0 = extractelement <4 x i32> %a, i32 377 %1 = zext i32 %0 to i12878 ret i128 %179}80