68 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 42; RUN: opt -S --passes=slp-vectorizer -mtriple=s390x-unknown-linux -mcpu=z16 < %s | FileCheck %s3 4define void @test() {5; CHECK-LABEL: define void @test(6; CHECK-SAME: ) #[[ATTR0:[0-9]+]] {7; CHECK-NEXT: [[TMP1:%.*]] = call i64 @llvm.vector.reduce.xor.v8i64(<8 x i64> zeroinitializer)8; CHECK-NEXT: store i64 [[TMP1]], ptr null, align 89; CHECK-NEXT: ret void10;11 %1 = zext i8 0 to i3212 %2 = lshr i32 0, %113 %3 = icmp ult i32 %2, 014 %4 = shl i32 0, %115 %5 = and i32 %4, 016 %narrow = select i1 %3, i32 0, i32 %517 %6 = zext i32 %narrow to i6418 %7 = zext i8 0 to i3219 %8 = lshr i32 0, %720 %9 = icmp ult i32 %8, 021 %10 = shl i32 0, %722 %11 = and i32 %10, 023 %narrow.1 = select i1 %9, i32 0, i32 %1124 %12 = zext i32 %narrow.1 to i6425 %13 = xor i64 %6, %1226 %14 = zext i8 0 to i3227 %15 = lshr i32 0, %1428 %16 = icmp ult i32 %15, 029 %17 = shl i32 0, %1430 %18 = and i32 %17, 031 %narrow.2 = select i1 %16, i32 0, i32 %1832 %19 = zext i32 %narrow.2 to i6433 %20 = xor i64 %13, %1934 %21 = icmp ult i32 %8, 035 %22 = shl i32 0, %736 %23 = and i32 %22, 037 %narrow.3 = select i1 %21, i32 0, i32 %2338 %24 = zext i32 %narrow.3 to i6439 %25 = xor i64 %20, %2440 %26 = icmp ult i32 %15, 041 %27 = shl i32 0, %1442 %28 = and i32 %27, 043 %narrow.4 = select i1 %26, i32 0, i32 %2844 %29 = zext i32 %narrow.4 to i6445 %30 = xor i64 %25, %2946 %31 = icmp ult i32 %8, 047 %32 = shl i32 0, %748 %33 = and i32 %32, 049 %narrow.5 = select i1 %31, i32 0, i32 %3350 %34 = zext i32 %narrow.5 to i6451 %35 = xor i64 %30, %3452 %36 = icmp ult i32 %15, 053 %37 = shl i32 0, %1454 %38 = and i32 %37, 055 %narrow.6 = select i1 %36, i32 0, i32 %3856 %39 = zext i32 %narrow.6 to i6457 %40 = xor i64 %35, %3958 %41 = icmp ult i32 %8, 059 %42 = shl i32 0, %760 %43 = and i32 %42, 061 %narrow.7 = select i1 %41, i32 0, i32 %4362 %44 = zext i32 %narrow.7 to i6463 %45 = xor i64 %40, %4464 store i64 %45, ptr null, align 865 ret void66}67 68