|
| 1 | +; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5 |
| 2 | +; RUN: opt -S --passes=slp-vectorizer -mtriple=x86_64-unknown-linux-gnu -slp-threshold=-99999 < %s | FileCheck %s |
| 3 | + |
| 4 | +define void @test() { |
| 5 | +; CHECK-LABEL: define void @test() { |
| 6 | +; CHECK-NEXT: [[ENTRY:.*]]: |
| 7 | +; CHECK-NEXT: br label %[[DO_BODY:.*]] |
| 8 | +; CHECK: [[DO_BODY]]: |
| 9 | +; CHECK-NEXT: [[TMP0:%.*]] = phi <12 x float> [ zeroinitializer, %[[ENTRY]] ], [ [[TMP7:%.*]], %[[DO_BODY]] ] |
| 10 | +; CHECK-NEXT: [[CMP119:%.*]] = fcmp uge float 0.000000e+00, 0.000000e+00 |
| 11 | +; CHECK-NEXT: [[VAL_SROA_6_1:%.*]] = select i1 [[CMP119]], float 0.000000e+00, float 0.000000e+00 |
| 12 | +; CHECK-NEXT: [[TMP1:%.*]] = insertelement <2 x float> <float 0.000000e+00, float poison>, float [[VAL_SROA_6_1]], i32 1 |
| 13 | +; CHECK-NEXT: [[TMP2:%.*]] = fcmp uge <2 x float> [[TMP1]], zeroinitializer |
| 14 | +; CHECK-NEXT: [[TMP3:%.*]] = shufflevector <2 x i1> [[TMP2]], <2 x i1> poison, <12 x i32> <i32 0, i32 1, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison> |
| 15 | +; CHECK-NEXT: [[TMP4:%.*]] = shufflevector <12 x i1> <i1 true, i1 undef, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 undef, i1 undef, i1 undef>, <12 x i1> [[TMP3]], <12 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 12, i32 13, i32 11> |
| 16 | +; CHECK-NEXT: [[TMP5:%.*]] = insertelement <12 x i1> [[TMP4]], i1 [[CMP119]], i32 11 |
| 17 | +; CHECK-NEXT: [[TMP6:%.*]] = shufflevector <12 x i1> [[TMP5]], <12 x i1> poison, <12 x i32> <i32 0, i32 0, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11> |
| 18 | +; CHECK-NEXT: [[TMP7]] = select <12 x i1> [[TMP6]], <12 x float> zeroinitializer, <12 x float> zeroinitializer |
| 19 | +; CHECK-NEXT: br label %[[DO_BODY]] |
| 20 | +; |
| 21 | +entry: |
| 22 | + br label %do.body |
| 23 | + |
| 24 | +do.body: |
| 25 | + %val.sroa.66.0 = phi float [ 0.000000e+00, %entry ], [ %val.sroa.66.1, %do.body ] |
| 26 | + %val.sroa.60.0 = phi float [ 0.000000e+00, %entry ], [ %val.sroa.60.2, %do.body ] |
| 27 | + %val.sroa.54.0 = phi float [ 0.000000e+00, %entry ], [ %val.sroa.54.2, %do.body ] |
| 28 | + %val.sroa.48.0 = phi float [ 0.000000e+00, %entry ], [ %val.sroa.48.2, %do.body ] |
| 29 | + %val.sroa.42.0 = phi float [ 0.000000e+00, %entry ], [ %val.sroa.42.2, %do.body ] |
| 30 | + %val.sroa.36.0 = phi float [ 0.000000e+00, %entry ], [ %val.sroa.36.2, %do.body ] |
| 31 | + %val.sroa.30.0 = phi float [ 0.000000e+00, %entry ], [ %val.sroa.30.2, %do.body ] |
| 32 | + %val.sroa.24.0 = phi float [ 0.000000e+00, %entry ], [ %val.sroa.24.2, %do.body ] |
| 33 | + %val.sroa.18.0 = phi float [ 0.000000e+00, %entry ], [ %val.sroa.18.2, %do.body ] |
| 34 | + %val.sroa.12.0 = phi float [ 0.000000e+00, %entry ], [ %val.sroa.12.2, %do.body ] |
| 35 | + %val.sroa.6.0 = phi float [ 0.000000e+00, %entry ], [ %val.sroa.6.2, %do.body ] |
| 36 | + %val.sroa.0.0 = phi float [ 0.000000e+00, %entry ], [ %val.sroa.0.1, %do.body ] |
| 37 | + %cmp119 = fcmp uge float 0.000000e+00, 0.000000e+00 |
| 38 | + %val.sroa.6.1 = select i1 %cmp119, float 0.000000e+00, float 0.000000e+00 |
| 39 | + %val.sroa.0.1 = select i1 %cmp119, float 0.000000e+00, float 0.000000e+00 |
| 40 | + %cmp119.1 = fcmp uge float %val.sroa.6.1, 0.000000e+00 |
| 41 | + %val.sroa.6.2 = select i1 %cmp119.1, float 0.000000e+00, float 0.000000e+00 |
| 42 | + %cmp119.2 = fcmp uge float 0.000000e+00, 0.000000e+00 |
| 43 | + %val.sroa.12.2 = select i1 %cmp119.2, float 0.000000e+00, float 0.000000e+00 |
| 44 | + %cmp119.3 = fcmp uge float 0.000000e+00, 0.000000e+00 |
| 45 | + %val.sroa.18.2 = select i1 %cmp119.3, float 0.000000e+00, float 0.000000e+00 |
| 46 | + %cmp119.4 = fcmp uge float 0.000000e+00, 0.000000e+00 |
| 47 | + %val.sroa.24.2 = select i1 %cmp119.4, float 0.000000e+00, float 0.000000e+00 |
| 48 | + %cmp119.5 = fcmp uge float 0.000000e+00, 0.000000e+00 |
| 49 | + %val.sroa.30.2 = select i1 %cmp119.5, float 0.000000e+00, float 0.000000e+00 |
| 50 | + %cmp119.6 = fcmp uge float 0.000000e+00, 0.000000e+00 |
| 51 | + %val.sroa.36.2 = select i1 %cmp119.6, float 0.000000e+00, float 0.000000e+00 |
| 52 | + %cmp119.7 = fcmp uge float 0.000000e+00, 0.000000e+00 |
| 53 | + %val.sroa.42.2 = select i1 %cmp119.7, float 0.000000e+00, float 0.000000e+00 |
| 54 | + %cmp119.8 = fcmp uge float 0.000000e+00, 0.000000e+00 |
| 55 | + %val.sroa.48.2 = select i1 %cmp119.8, float 0.000000e+00, float 0.000000e+00 |
| 56 | + %cmp119.9 = fcmp uge float 0.000000e+00, 0.000000e+00 |
| 57 | + %val.sroa.54.2 = select i1 %cmp119.9, float 0.000000e+00, float 0.000000e+00 |
| 58 | + %cmp119.10 = fcmp uge float 0.000000e+00, 0.000000e+00 |
| 59 | + %val.sroa.66.1 = select i1 %cmp119.10, float 0.000000e+00, float 0.000000e+00 |
| 60 | + %val.sroa.60.2 = select i1 %cmp119.10, float 0.000000e+00, float 0.000000e+00 |
| 61 | + br label %do.body |
| 62 | +} |
0 commit comments