brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.3 KiB · 143e093 Raw
90 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: opt -passes=slp-vectorizer -S < %s -mtriple=x86_64-unknown-linux-gnu -mcpu=skylake -slp-threshold=-4 | FileCheck %s --check-prefix=CHECK3; RUN: opt -passes=slp-vectorizer -S < %s -mtriple=x86_64-unknown-linux-gnu -mcpu=skylake -slp-threshold=-4 -slp-min-tree-size=5 | FileCheck %s --check-prefix=FORCE_REDUCTION4 5define void @Test(i32) {6; CHECK-LABEL: @Test(7; CHECK-NEXT:  entry:8; CHECK-NEXT:    br label [[LOOP:%.*]]9; CHECK:       loop:10; CHECK-NEXT:    [[LOCAL_8_43_US:%.*]] = phi i32 [ [[VAL_43:%.*]], [[LOOP]] ], [ 0, [[ENTRY:%.*]] ]11; CHECK-NEXT:    [[TMP1:%.*]] = phi <2 x i32> [ [[TMP6:%.*]], [[LOOP]] ], [ zeroinitializer, [[ENTRY]] ]12; CHECK-NEXT:    [[TMP2:%.*]] = shufflevector <2 x i32> [[TMP1]], <2 x i32> poison, <8 x i32> <i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1>13; CHECK-NEXT:    [[TMP3:%.*]] = add <8 x i32> [[TMP2]], <i32 0, i32 55, i32 285, i32 1240, i32 1496, i32 8555, i32 12529, i32 13685>14; CHECK-NEXT:    [[TMP4:%.*]] = call i32 @llvm.vector.reduce.and.v8i32(<8 x i32> [[TMP3]])15; CHECK-NEXT:    [[OP_RDX:%.*]] = and i32 [[TMP0:%.*]], [[TMP4]]16; CHECK-NEXT:    [[OP_RDX1:%.*]] = and i32 [[OP_RDX]], [[LOCAL_8_43_US]]17; CHECK-NEXT:    [[VAL_43]] = add i32 [[LOCAL_8_43_US]], 1491018; CHECK-NEXT:    [[TMP5:%.*]] = insertelement <2 x i32> poison, i32 [[OP_RDX1]], i32 019; CHECK-NEXT:    [[TMP6]] = insertelement <2 x i32> [[TMP5]], i32 [[VAL_43]], i32 120; CHECK-NEXT:    br label [[LOOP]]21;22; FORCE_REDUCTION-LABEL: @Test(23; FORCE_REDUCTION-NEXT:  entry:24; FORCE_REDUCTION-NEXT:    br label [[LOOP:%.*]]25; FORCE_REDUCTION:       loop:26; FORCE_REDUCTION-NEXT:    [[LOCAL_8_43_US:%.*]] = phi i32 [ [[VAL_43:%.*]], [[LOOP]] ], [ 0, [[ENTRY:%.*]] ]27; FORCE_REDUCTION-NEXT:    [[TMP1:%.*]] = phi <2 x i32> [ [[TMP6:%.*]], [[LOOP]] ], [ zeroinitializer, [[ENTRY]] ]28; FORCE_REDUCTION-NEXT:    [[TMP2:%.*]] = shufflevector <2 x i32> [[TMP1]], <2 x i32> poison, <8 x i32> <i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1>29; FORCE_REDUCTION-NEXT:    [[TMP3:%.*]] = add <8 x i32> [[TMP2]], <i32 0, i32 55, i32 285, i32 1240, i32 1496, i32 8555, i32 12529, i32 13685>30; FORCE_REDUCTION-NEXT:    [[TMP4:%.*]] = call i32 @llvm.vector.reduce.and.v8i32(<8 x i32> [[TMP3]])31; FORCE_REDUCTION-NEXT:    [[OP_RDX:%.*]] = and i32 [[TMP0:%.*]], [[TMP4]]32; FORCE_REDUCTION-NEXT:    [[OP_RDX1:%.*]] = and i32 [[OP_RDX]], [[LOCAL_8_43_US]]33; FORCE_REDUCTION-NEXT:    [[VAL_43]] = add i32 [[LOCAL_8_43_US]], 1491034; FORCE_REDUCTION-NEXT:    [[TMP5:%.*]] = insertelement <2 x i32> poison, i32 [[OP_RDX1]], i32 035; FORCE_REDUCTION-NEXT:    [[TMP6]] = insertelement <2 x i32> [[TMP5]], i32 [[VAL_43]], i32 136; FORCE_REDUCTION-NEXT:    br label [[LOOP]]37;38entry:39  br label %loop40 41loop:42  %local_4_39.us = phi i32 [ %val_42, %loop ], [ 0, %entry ]43  %local_8_43.us = phi i32 [ %val_43, %loop ], [ 0, %entry ]44  %val_0 = add i32 %local_4_39.us, 045  %val_1 = and i32 %local_8_43.us, %val_046  %val_2 = and i32 %val_1, %047  %val_3 = and i32 %val_2, %048  %val_4 = and i32 %val_3, %049  %val_5 = and i32 %val_4, %050  %val_6 = add i32 %local_8_43.us, 5551  %val_7 = and i32 %val_5, %val_652  %val_8 = and i32 %val_7, %053  %val_9 = and i32 %val_8, %054  %val_10 = and i32 %val_9, %055  %val_11 = add i32 %local_8_43.us, 28556  %val_12 = and i32 %val_10, %val_1157  %val_13 = and i32 %val_12, %058  %val_14 = and i32 %val_13, %059  %val_15 = and i32 %val_14, %060  %val_16 = and i32 %val_15, %061  %val_17 = and i32 %val_16, %062  %val_18 = add i32 %local_8_43.us, 124063  %val_19 = and i32 %val_17, %val_1864  %val_20 = add i32 %local_8_43.us, 149665  %val_21 = and i32 %val_19, %val_2066  %val_22 = and i32 %val_21, %067  %val_23 = and i32 %val_22, %068  %val_24 = and i32 %val_23, %069  %val_25 = and i32 %val_24, %070  %val_26 = and i32 %val_25, %071  %val_27 = and i32 %val_26, %072  %val_28 = and i32 %val_27, %073  %val_29 = and i32 %val_28, %074  %val_30 = and i32 %val_29, %075  %val_31 = and i32 %val_30, %076  %val_32 = and i32 %val_31, %077  %val_33 = and i32 %val_32, %078  %val_34 = add i32 %local_8_43.us, 855579  %val_35 = and i32 %val_33, %val_3480  %val_36 = and i32 %val_35, %081  %val_37 = and i32 %val_36, %082  %val_38 = and i32 %val_37, %083  %val_39 = add i32 %local_8_43.us, 1252984  %val_40 = and i32 %val_38, %val_3985  %val_41 = add i32 %local_8_43.us, 1368586  %val_42 = and i32 %val_40, %val_4187  %val_43 = add i32 %local_8_43.us, 1491088  br label %loop89}90