brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.9 KiB · b1864b4 Raw
118 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 -slp-threshold=-9999 < %s | FileCheck %s3 4define i32 @test(i32 %s.0) {5; CHECK-LABEL: define i32 @test(6; CHECK-SAME: i32 [[S_0:%.*]]) {7; CHECK-NEXT:  [[ENTRY:.*]]:8; CHECK-NEXT:    [[TMP0:%.*]] = insertelement <4 x i32> <i32 0, i32 poison, i32 poison, i32 0>, i32 [[S_0]], i32 29; CHECK-NEXT:    br label %[[K:.*]]10; CHECK:       [[K]]:11; CHECK-NEXT:    [[DOTPRE:%.*]] = phi i32 [ 0, %[[ENTRY]] ], [ [[TMP17:%.*]], %[[T:.*]] ]12; CHECK-NEXT:    [[TMP1:%.*]] = insertelement <4 x i32> [[TMP0]], i32 [[DOTPRE]], i32 113; CHECK-NEXT:    br label %[[O:.*]]14; CHECK:       [[IF_END3:.*]]:15; CHECK-NEXT:    br label %[[IF_END6:.*]]16; CHECK:       [[IF_END6]]:17; CHECK-NEXT:    [[TMP2:%.*]] = phi <2 x i32> [ poison, %[[IF_END3]] ], [ [[TMP24:%.*]], %[[O]] ]18; CHECK-NEXT:    [[TMP3:%.*]] = phi <4 x i32> [ poison, %[[IF_END3]] ], [ zeroinitializer, %[[O]] ]19; CHECK-NEXT:    [[TMP4:%.*]] = phi <2 x i32> [ poison, %[[IF_END3]] ], [ [[TMP29:%.*]], %[[O]] ]20; CHECK-NEXT:    [[TMP5:%.*]] = xor <2 x i32> [[TMP4]], zeroinitializer21; CHECK-NEXT:    [[TMP6:%.*]] = insertelement <8 x i32> <i32 0, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison>, i32 [[TMP22:%.*]], i32 122; CHECK-NEXT:    [[TMP7:%.*]] = shufflevector <4 x i32> [[TMP3]], <4 x i32> poison, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 poison, i32 poison, i32 poison, i32 poison>23; CHECK-NEXT:    [[TMP27:%.*]] = shufflevector <8 x i32> [[TMP6]], <8 x i32> [[TMP7]], <8 x i32> <i32 0, i32 1, i32 8, i32 9, i32 10, i32 11, i32 poison, i32 poison>24; CHECK-NEXT:    [[TMP30:%.*]] = shufflevector <2 x i32> [[TMP5]], <2 x i32> poison, <8 x i32> <i32 1, i32 0, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison>25; CHECK-NEXT:    [[TMP31:%.*]] = shufflevector <8 x i32> [[TMP27]], <8 x i32> [[TMP30]], <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 8, i32 9>26; CHECK-NEXT:    br i1 false, label %[[IF_END24:.*]], label %[[IF_THEN11:.*]]27; CHECK:       [[IF_THEN11]]:28; CHECK-NEXT:    [[TMP11:%.*]] = shufflevector <2 x i32> [[TMP2]], <2 x i32> poison, <8 x i32> <i32 1, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 0, i32 poison>29; CHECK-NEXT:    [[TMP12:%.*]] = shufflevector <8 x i32> <i32 0, i32 poison, i32 0, i32 0, i32 0, i32 0, i32 0, i32 poison>, <8 x i32> [[TMP11]], <8 x i32> <i32 0, i32 8, i32 2, i32 3, i32 4, i32 5, i32 6, i32 14>30; CHECK-NEXT:    br label %[[IF_END24]]31; CHECK:       [[IF_THEN18:.*]]:32; CHECK-NEXT:    br label %[[T]]33; CHECK:       [[T]]:34; CHECK-NEXT:    [[TMP13:%.*]] = phi <8 x i32> [ [[TMP33:%.*]], %[[O]] ], [ poison, %[[IF_THEN18]] ]35; CHECK-NEXT:    [[TMP17]] = extractelement <4 x i32> [[TMP23:%.*]], i32 036; CHECK-NEXT:    br i1 false, label %[[IF_END24]], label %[[K]]37; CHECK:       [[IF_END24]]:38; CHECK-NEXT:    [[TMP18:%.*]] = phi <8 x i32> [ [[TMP12]], %[[IF_THEN11]] ], [ [[TMP31]], %[[IF_END6]] ], [ [[TMP13]], %[[T]] ]39; CHECK-NEXT:    [[TMP20:%.*]] = shufflevector <8 x i32> [[TMP18]], <8 x i32> poison, <4 x i32> <i32 0, i32 5, i32 6, i32 7>40; CHECK-NEXT:    [[TMP19:%.*]] = shufflevector <8 x i32> [[TMP18]], <8 x i32> poison, <2 x i32> <i32 6, i32 1>41; CHECK-NEXT:    [[TMP34:%.*]] = shufflevector <8 x i32> [[TMP18]], <8 x i32> poison, <4 x i32> <i32 2, i32 3, i32 4, i32 7>42; CHECK-NEXT:    br label %[[O]]43; CHECK:       [[O]]:44; CHECK-NEXT:    [[TMP23]] = phi <4 x i32> [ [[TMP1]], %[[K]] ], [ [[TMP20]], %[[IF_END24]] ]45; CHECK-NEXT:    [[TMP24]] = phi <2 x i32> [ zeroinitializer, %[[K]] ], [ [[TMP19]], %[[IF_END24]] ]46; CHECK-NEXT:    [[TMP21:%.*]] = phi <4 x i32> [ zeroinitializer, %[[K]] ], [ [[TMP34]], %[[IF_END24]] ]47; CHECK-NEXT:    [[TMP22]] = extractelement <2 x i32> [[TMP24]], i32 148; CHECK-NEXT:    [[TMP25:%.*]] = shufflevector <4 x i32> [[TMP23]], <4 x i32> poison, <8 x i32> <i32 0, i32 poison, i32 0, i32 0, i32 poison, i32 poison, i32 poison, i32 poison>49; CHECK-NEXT:    [[TMP26:%.*]] = shufflevector <8 x i32> [[TMP25]], <8 x i32> <i32 poison, i32 0, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison>, <8 x i32> <i32 0, i32 9, i32 2, i32 3, i32 poison, i32 poison, i32 poison, i32 poison>50; CHECK-NEXT:    [[TMP32:%.*]] = shufflevector <4 x i32> [[TMP23]], <4 x i32> poison, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 poison, i32 poison, i32 poison, i32 poison>51; CHECK-NEXT:    [[TMP33]] = shufflevector <8 x i32> [[TMP26]], <8 x i32> [[TMP32]], <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 8, i32 9, i32 10, i32 11>52; CHECK-NEXT:    [[TMP35:%.*]] = shufflevector <2 x i32> [[TMP24]], <2 x i32> poison, <2 x i32> <i32 1, i32 poison>53; CHECK-NEXT:    [[TMP28:%.*]] = shufflevector <4 x i32> [[TMP21]], <4 x i32> poison, <2 x i32> <i32 poison, i32 3>54; CHECK-NEXT:    [[TMP29]] = shufflevector <2 x i32> [[TMP35]], <2 x i32> [[TMP28]], <2 x i32> <i32 0, i32 3>55; CHECK-NEXT:    br i1 false, label %[[T]], label %[[IF_END6]]56;57entry:58  br label %k59 60k:61  %.pre = phi i32 [ 0, %entry ], [ %.pre4053, %t ]62  br label %o63 64if.end3:65  br label %if.end666 67if.end6:68  %.pre43 = phi i32 [ 0, %if.end3 ], [ 0, %o ]69  %0 = phi i32 [ 0, %if.end3 ], [ 0, %o ]70  %1 = phi i32 [ 0, %if.end3 ], [ 0, %o ]71  %h.4 = phi i32 [ 0, %if.end3 ], [ %h.6, %o ]72  %i.4 = phi i32 [ 0, %if.end3 ], [ %i.7, %o ]73  %j.4 = phi i32 [ 0, %if.end3 ], [ %j.5, %o ]74  %l.4 = phi i32 [ 0, %if.end3 ], [ 0, %o ]75  %not8 = xor i32 %i.4, 076  %not9 = xor i32 %h.4, 077  br i1 false, label %if.end24, label %if.then1178 79if.then11:80  br label %if.end2481 82if.then18:83  br label %t84 85t:86  %.pre40 = phi i32 [ %.pre4053, %o ], [ 0, %if.then18 ]87  %i.5 = phi i32 [ 0, %o ], [ 0, %if.then18 ]88  %l.5 = phi i32 [ %l.7, %o ], [ 0, %if.then18 ]89  %r.2 = phi i32 [ %r.4, %o ], [ 0, %if.then18 ]90  %s.2 = phi i32 [ %s.4, %o ], [ 0, %if.then18 ]91  br i1 false, label %if.end24, label %k92 93if.end24:94  %.pre4050 = phi i32 [ 0, %if.then11 ], [ 0, %if.end6 ], [ %.pre40, %t ]95  %.pre42 = phi i32 [ 0, %if.then11 ], [ %.pre43, %if.end6 ], [ %.pre40, %t ]96  %2 = phi i32 [ 0, %if.then11 ], [ %0, %if.end6 ], [ %.pre40, %t ]97  %3 = phi i32 [ 0, %if.then11 ], [ %1, %if.end6 ], [ %.pre40, %t ]98  %i.6 = phi i32 [ %i.4, %if.then11 ], [ %i.7, %if.end6 ], [ %i.5, %t ]99  %l.6 = phi i32 [ 0, %if.then11 ], [ %l.4, %if.end6 ], [ %l.5, %t ]100  %r.3 = phi i32 [ %j.4, %if.then11 ], [ %not8, %if.end6 ], [ %r.2, %t ]101  %s.3 = phi i32 [ 0, %if.then11 ], [ %not9, %if.end6 ], [ %s.2, %t ]102  br label %o103 104o:105  %.pre4053 = phi i32 [ 0, %k ], [ %.pre4050, %if.end24 ]106  %.pre46 = phi i32 [ 0, %k ], [ %.pre42, %if.end24 ]107  %4 = phi i32 [ 0, %k ], [ %2, %if.end24 ]108  %5 = phi i32 [ 0, %k ], [ %3, %if.end24 ]109  %h.6 = phi i32 [ 0, %k ], [ %r.3, %if.end24 ]110  %i.7 = phi i32 [ 0, %k ], [ %i.6, %if.end24 ]111  %j.5 = phi i32 [ 0, %k ], [ %s.3, %if.end24 ]112  %l.7 = phi i32 [ %.pre, %k ], [ %l.6, %if.end24 ]113  %r.4 = phi i32 [ 0, %k ], [ %r.3, %if.end24 ]114  %s.4 = phi i32 [ %s.0, %k ], [ %s.3, %if.end24 ]115  br i1 false, label %t, label %if.end6116}117 118