43 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: opt -passes=slp-vectorizer -S -mtriple=x86_64-unknown-linux-gnu < %s | FileCheck %s3 4define void @test() {5; CHECK-LABEL: @test(6; CHECK-NEXT: entry:7; CHECK-NEXT: br label [[FOR_BODY:%.*]]8; CHECK: for.body:9; CHECK-NEXT: [[TMP0:%.*]] = phi <2 x i1> [ [[TMP6:%.*]], [[TMP1:%.*]] ], [ zeroinitializer, [[ENTRY:%.*]] ]10; CHECK-NEXT: br label [[TMP1]]11; CHECK: 1:12; CHECK-NEXT: [[TMP2:%.*]] = and <2 x i1> zeroinitializer, [[TMP0]]13; CHECK-NEXT: [[TMP3:%.*]] = or <2 x i1> [[TMP2]], zeroinitializer14; CHECK-NEXT: [[TMP4:%.*]] = zext <2 x i1> [[TMP3]] to <2 x i8>15; CHECK-NEXT: [[TMP5:%.*]] = icmp ne <2 x i8> [[TMP4]], zeroinitializer16; CHECK-NEXT: [[TMP6]] = and <2 x i1> [[TMP5]], zeroinitializer17; CHECK-NEXT: br label [[FOR_BODY]]18;19entry:20 br label %for.body21 22for.body:23 %phi1 = phi i1 [ %icmp2, %0 ], [ false, %entry ]24 %phi2 = phi i1 [ %icmp1, %0 ], [ false, %entry ]25 br label %026 270:28 %z1 = zext i1 %phi2 to i829 %1 = and i8 0, %z130 %2 = and i8 0, 031 %3 = or i8 %1, %232 %4 = icmp ne i8 %3, 033 %icmp1 = and i1 %4, false34 %5 = or i8 0, 035 %z2 = zext i1 %phi1 to i836 %6 = and i8 %5, %z237 %7 = and i8 0, 038 %8 = or i8 %6, %739 %9 = icmp ne i8 %8, 040 %icmp2 = and i1 %9, false41 br label %for.body42}43