48 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 52; RUN: opt -S --passes=slp-vectorizer -mtriple=x86_64-unknown-linux-gnu < %s | FileCheck %s3 4define i8 @test() {5; CHECK-LABEL: define i8 @test() {6; CHECK-NEXT: [[ENTRY:.*:]]7; CHECK-NEXT: [[TMP0:%.*]] = trunc i32 0 to i88; CHECK-NEXT: [[TMP1:%.*]] = trunc i32 0 to i89; CHECK-NEXT: [[TMP2:%.*]] = trunc i32 0 to i810; CHECK-NEXT: [[TMP3:%.*]] = trunc i32 0 to i811; CHECK-NEXT: [[OP_RDX1:%.*]] = or i8 [[TMP0]], [[TMP2]]12; CHECK-NEXT: [[OP_RDX2:%.*]] = or i8 [[OP_RDX1]], [[TMP0]]13; CHECK-NEXT: [[OP_RDX3:%.*]] = or i8 [[OP_RDX2]], [[TMP1]]14; CHECK-NEXT: [[OP_RDX5:%.*]] = or i8 [[OP_RDX3]], [[TMP3]]15; CHECK-NEXT: [[TMP4:%.*]] = call i8 @llvm.vector.reduce.or.v8i8(<8 x i8> zeroinitializer)16; CHECK-NEXT: [[OP_RDX4:%.*]] = or i8 [[OP_RDX5]], [[TMP4]]17; CHECK-NEXT: ret i8 [[OP_RDX4]]18;19entry:20 %0 = trunc i32 0 to i821 %1 = add i8 %0, 022 %2 = add i8 %0, 023 %3 = add i8 %0, 024 %4 = add i8 %0, 025 %5 = trunc i32 0 to i826 %6 = or i8 %5, %027 %7 = or i8 %6, %228 %8 = or i8 %7, %329 %9 = or i8 %8, %030 %10 = or i8 %9, %431 %conv4 = or i8 %10, %132 %11 = trunc i32 0 to i833 %12 = add i8 %11, 034 %conv7 = or i8 %conv4, %1235 %13 = add i8 %11, 036 %14 = add i8 %11, 037 %15 = add i8 %11, 038 %16 = trunc i32 0 to i839 %17 = or i8 %13, %1640 %18 = or i8 %17, %1441 %19 = or i8 %18, %1142 %20 = or i8 %19, %1543 %conv5 = or i8 %20, %conv744 %21 = trunc i32 0 to i845 %conv6 = or i8 %21, %conv546 ret i8 %conv647}48