brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.8 KiB · f1e3595 Raw
92 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 62; RUN: opt -passes=slp-vectorizer -S -slp-threshold=-99999 -mtriple=x86_64-unknown-linux-gnu < %s | FileCheck %s3 4define i32 @test() {5; CHECK-LABEL: define i32 @test() {6; CHECK-NEXT:  [[BB:.*]]:7; CHECK-NEXT:    br label %[[BB1:.*]]8; CHECK:       [[BB1]]:9; CHECK-NEXT:    [[TMP0:%.*]] = phi <4 x i32> [ [[TMP16:%.*]], %[[BB24:.*]] ], [ <i32 poison, i32 poison, i32 0, i32 0>, %[[BB]] ]10; CHECK-NEXT:    [[TMP1:%.*]] = phi <4 x i32> [ [[TMP13:%.*]], %[[BB24]] ], [ <i32 poison, i32 poison, i32 0, i32 0>, %[[BB]] ]11; CHECK-NEXT:    br i1 false, label %[[BB4:.*]], label %[[BB11:.*]]12; CHECK:       [[BB4]]:13; CHECK-NEXT:    [[TMP2:%.*]] = phi <2 x double> [ zeroinitializer, %[[BB1]] ]14; CHECK-NEXT:    [[TMP3:%.*]] = phi <4 x i32> [ [[TMP0]], %[[BB1]] ]15; CHECK-NEXT:    br label %[[BB19:.*]]16; CHECK:       [[BB11]]:17; CHECK-NEXT:    br i1 false, label %[[BB12:.*]], label %[[BB16:.*]]18; CHECK:       [[BB12]]:19; CHECK-NEXT:    [[TMP4:%.*]] = or <4 x i32> [[TMP1]], <i32 poison, i32 poison, i32 0, i32 0>20; CHECK-NEXT:    br label %[[BB13:.*]]21; CHECK:       [[BB13]]:22; CHECK-NEXT:    [[TMP5:%.*]] = phi <4 x i32> [ [[TMP4]], %[[BB12]] ]23; CHECK-NEXT:    br label %[[BB16]]24; CHECK:       [[BB16]]:25; CHECK-NEXT:    [[TMP6:%.*]] = phi <4 x i32> [ <i32 poison, i32 poison, i32 0, i32 0>, %[[BB11]] ], [ [[TMP5]], %[[BB13]] ]26; CHECK-NEXT:    br label %[[BB19]]27; CHECK:       [[BB19]]:28; CHECK-NEXT:    [[PHI22:%.*]] = phi double [ 0.000000e+00, %[[BB4]] ], [ 0.000000e+00, %[[BB16]] ]29; CHECK-NEXT:    [[TMP7:%.*]] = phi <4 x i32> [ <i32 poison, i32 poison, i32 0, i32 0>, %[[BB4]] ], [ [[TMP6]], %[[BB16]] ]30; CHECK-NEXT:    [[TMP8:%.*]] = or <4 x i32> [[TMP7]], <i32 poison, i32 poison, i32 0, i32 0>31; CHECK-NEXT:    br label %[[BB24]]32; CHECK:       [[BB24]]:33; CHECK-NEXT:    [[TMP9:%.*]] = lshr <4 x i32> [[TMP8]], <i32 poison, i32 poison, i32 0, i32 0>34; CHECK-NEXT:    [[TMP10:%.*]] = and <4 x i32> [[TMP9]], <i32 poison, i32 poison, i32 -1, i32 0>35; CHECK-NEXT:    [[TMP11:%.*]] = shufflevector <4 x i32> [[TMP0]], <4 x i32> <i32 poison, i32 poison, i32 0, i32 poison>, <4 x i32> <i32 0, i32 1, i32 6, i32 3>36; CHECK-NEXT:    [[TMP12:%.*]] = shufflevector <4 x i32> [[TMP10]], <4 x i32> <i32 poison, i32 poison, i32 0, i32 poison>, <4 x i32> <i32 0, i32 1, i32 6, i32 3>37; CHECK-NEXT:    [[TMP13]] = lshr <4 x i32> [[TMP11]], [[TMP12]]38; CHECK-NEXT:    [[TMP14:%.*]] = lshr <4 x i32> [[TMP11]], [[TMP10]]39; CHECK-NEXT:    [[TMP15:%.*]] = or <4 x i32> [[TMP11]], [[TMP10]]40; CHECK-NEXT:    [[TMP16]] = shufflevector <4 x i32> [[TMP14]], <4 x i32> [[TMP15]], <4 x i32> <i32 poison, i32 poison, i32 6, i32 3>41; CHECK-NEXT:    br label %[[BB1]]42;43bb:44  br label %bb145 46bb1:47  %phi = phi i32 [ %lshr25, %bb24 ], [ 0, %bb ]48  %phi2 = phi i32 [ %or26, %bb24 ], [ 0, %bb ]49  %phi3 = phi i32 [ 0, %bb24 ], [ 0, %bb ]50  br i1 false, label %bb4, label %bb1151 52bb4:53  %phi6 = phi i32 [ poison, %bb1 ]54  %phi7 = phi i32 [ poison, %bb1 ]55  %phi9 = phi i32 [ %phi2, %bb1 ]56  %phi10 = phi i32 [ %phi, %bb1 ]57  %0 = phi <2 x double> [ zeroinitializer, %bb1 ]58  br label %bb1959 60bb11:61  br i1 false, label %bb12, label %bb1662 63bb12:64  %or = or i32 0, %phi365  br label %bb1366 67bb13:68  %phi14 = phi i32 [ %phi, %bb12 ]69  %phi15 = phi i32 [ %or, %bb12 ]70  br label %bb1671 72bb16:73  %phi17 = phi i32 [ 0, %bb11 ], [ %phi14, %bb13 ]74  %phi18 = phi i32 [ 0, %bb11 ], [ %phi15, %bb13 ]75  br label %bb1976 77bb19:78  %phi20 = phi i32 [ 0, %bb4 ], [ %phi17, %bb16 ]79  %phi21 = phi i32 [ 0, %bb4 ], [ %phi18, %bb16 ]80  %phi22 = phi double [ 0.000000e+00, %bb4 ], [ 0.000000e+00, %bb16 ]81  %or23 = or i32 %phi21, 082  br label %bb2483 84bb24:85  %lshr = lshr i32 %phi20, 086  %and = and i32 %lshr, 087  %lshr25 = lshr i32 %phi, %and88  %or26 = or i32 0, %or2389  br label %bb190}91 92