78 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: opt -passes=reassociate,slp-vectorizer -slp-vectorize-hor -slp-vectorize-hor-store -S < %s -mtriple=x86_64-apple-macosx -mcpu=corei7-avx -mattr=+avx2 | FileCheck %s3 4define signext i8 @Foo(ptr %__v) {5; CHECK-LABEL: @Foo(6; CHECK-NEXT: entry:7; CHECK-NEXT: [[TMP0:%.*]] = load <32 x i8>, ptr [[__V:%.*]], align 328; CHECK-NEXT: [[TMP1:%.*]] = call i8 @llvm.vector.reduce.add.v32i8(<32 x i8> [[TMP0]])9; CHECK-NEXT: ret i8 [[TMP1]]10;11entry:12 %0 = load <32 x i8>, ptr %__v, align 3213 %vecext.i.i.i = extractelement <32 x i8> %0, i64 014 %vecext.i.i.1.i = extractelement <32 x i8> %0, i64 115 %add.i.1.i = add i8 %vecext.i.i.1.i, %vecext.i.i.i16 %vecext.i.i.2.i = extractelement <32 x i8> %0, i64 217 %add.i.2.i = add i8 %vecext.i.i.2.i, %add.i.1.i18 %vecext.i.i.3.i = extractelement <32 x i8> %0, i64 319 %add.i.3.i = add i8 %vecext.i.i.3.i, %add.i.2.i20 %vecext.i.i.4.i = extractelement <32 x i8> %0, i64 421 %add.i.4.i = add i8 %vecext.i.i.4.i, %add.i.3.i22 %vecext.i.i.5.i = extractelement <32 x i8> %0, i64 523 %add.i.5.i = add i8 %vecext.i.i.5.i, %add.i.4.i24 %vecext.i.i.6.i = extractelement <32 x i8> %0, i64 625 %add.i.6.i = add i8 %vecext.i.i.6.i, %add.i.5.i26 %vecext.i.i.7.i = extractelement <32 x i8> %0, i64 727 %add.i.7.i = add i8 %vecext.i.i.7.i, %add.i.6.i28 %vecext.i.i.8.i = extractelement <32 x i8> %0, i64 829 %add.i.8.i = add i8 %vecext.i.i.8.i, %add.i.7.i30 %vecext.i.i.9.i = extractelement <32 x i8> %0, i64 931 %add.i.9.i = add i8 %vecext.i.i.9.i, %add.i.8.i32 %vecext.i.i.10.i = extractelement <32 x i8> %0, i64 1033 %add.i.10.i = add i8 %vecext.i.i.10.i, %add.i.9.i34 %vecext.i.i.11.i = extractelement <32 x i8> %0, i64 1135 %add.i.11.i = add i8 %vecext.i.i.11.i, %add.i.10.i36 %vecext.i.i.12.i = extractelement <32 x i8> %0, i64 1237 %add.i.12.i = add i8 %vecext.i.i.12.i, %add.i.11.i38 %vecext.i.i.13.i = extractelement <32 x i8> %0, i64 1339 %add.i.13.i = add i8 %vecext.i.i.13.i, %add.i.12.i40 %vecext.i.i.14.i = extractelement <32 x i8> %0, i64 1441 %add.i.14.i = add i8 %vecext.i.i.14.i, %add.i.13.i42 %vecext.i.i.15.i = extractelement <32 x i8> %0, i64 1543 %add.i.15.i = add i8 %vecext.i.i.15.i, %add.i.14.i44 %vecext.i.i.16.i = extractelement <32 x i8> %0, i64 1645 %add.i.16.i = add i8 %vecext.i.i.16.i, %add.i.15.i46 %vecext.i.i.17.i = extractelement <32 x i8> %0, i64 1747 %add.i.17.i = add i8 %vecext.i.i.17.i, %add.i.16.i48 %vecext.i.i.18.i = extractelement <32 x i8> %0, i64 1849 %add.i.18.i = add i8 %vecext.i.i.18.i, %add.i.17.i50 %vecext.i.i.19.i = extractelement <32 x i8> %0, i64 1951 %add.i.19.i = add i8 %vecext.i.i.19.i, %add.i.18.i52 %vecext.i.i.20.i = extractelement <32 x i8> %0, i64 2053 %add.i.20.i = add i8 %vecext.i.i.20.i, %add.i.19.i54 %vecext.i.i.21.i = extractelement <32 x i8> %0, i64 2155 %add.i.21.i = add i8 %vecext.i.i.21.i, %add.i.20.i56 %vecext.i.i.22.i = extractelement <32 x i8> %0, i64 2257 %add.i.22.i = add i8 %vecext.i.i.22.i, %add.i.21.i58 %vecext.i.i.23.i = extractelement <32 x i8> %0, i64 2359 %add.i.23.i = add i8 %vecext.i.i.23.i, %add.i.22.i60 %vecext.i.i.24.i = extractelement <32 x i8> %0, i64 2461 %add.i.24.i = add i8 %vecext.i.i.24.i, %add.i.23.i62 %vecext.i.i.25.i = extractelement <32 x i8> %0, i64 2563 %add.i.25.i = add i8 %vecext.i.i.25.i, %add.i.24.i64 %vecext.i.i.26.i = extractelement <32 x i8> %0, i64 2665 %add.i.26.i = add i8 %vecext.i.i.26.i, %add.i.25.i66 %vecext.i.i.27.i = extractelement <32 x i8> %0, i64 2767 %add.i.27.i = add i8 %vecext.i.i.27.i, %add.i.26.i68 %vecext.i.i.28.i = extractelement <32 x i8> %0, i64 2869 %add.i.28.i = add i8 %vecext.i.i.28.i, %add.i.27.i70 %vecext.i.i.29.i = extractelement <32 x i8> %0, i64 2971 %add.i.29.i = add i8 %vecext.i.i.29.i, %add.i.28.i72 %vecext.i.i.30.i = extractelement <32 x i8> %0, i64 3073 %add.i.30.i = add i8 %vecext.i.i.30.i, %add.i.29.i74 %vecext.i.i.31.i = extractelement <32 x i8> %0, i64 3175 %add.i.31.i = add i8 %vecext.i.i.31.i, %add.i.30.i76 ret i8 %add.i.31.i77}78