brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.5 KiB · b30facf Raw
64 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 22; RUN: opt -S --passes=slp-vectorizer -mtriple=x86_64-unknown-linux-gnu -mattr=+avx512f < %s | FileCheck %s3 4define i32 @main(<16 x i32> %bc47.i, <16 x i32> %bc) {5; CHECK-LABEL: define i32 @main6; CHECK-SAME: (<16 x i32> [[BC47_I:%.*]], <16 x i32> [[BC:%.*]]) #[[ATTR0:[0-9]+]] {7; CHECK-NEXT:  entry:8; CHECK-NEXT:    [[TMP0:%.*]] = shufflevector <16 x i32> [[BC]], <16 x i32> [[BC47_I]], <8 x i32> <i32 0, i32 poison, i32 poison, i32 poison, i32 poison, i32 16, i32 poison, i32 poison>9; CHECK-NEXT:    [[TMP1:%.*]] = shufflevector <8 x i32> [[TMP0]], <8 x i32> <i32 poison, i32 0, i32 0, i32 0, i32 0, i32 poison, i32 0, i32 0>, <8 x i32> <i32 0, i32 9, i32 10, i32 11, i32 12, i32 5, i32 14, i32 15>10; CHECK-NEXT:    [[TMP2:%.*]] = shufflevector <8 x i32> [[TMP0]], <8 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 -1, i32 0, i32 0>, <8 x i32> <i32 poison, i32 0, i32 poison, i32 5, i32 13, i32 poison, i32 poison, i32 poison>11; CHECK-NEXT:    [[TMP3:%.*]] = shufflevector <8 x i32> <i32 1, i32 undef, i32 0, i32 undef, i32 undef, i32 0, i32 0, i32 0>, <8 x i32> [[TMP2]], <8 x i32> <i32 0, i32 9, i32 2, i32 11, i32 12, i32 5, i32 6, i32 7>12; CHECK-NEXT:    [[TMP4:%.*]] = mul <8 x i32> [[TMP1]], [[TMP3]]13; CHECK-NEXT:    [[TMP5:%.*]] = sub <8 x i32> [[TMP4]], zeroinitializer14; CHECK-NEXT:    [[TMP6:%.*]] = add <8 x i32> [[TMP4]], zeroinitializer15; CHECK-NEXT:    [[TMP7:%.*]] = shufflevector <8 x i32> [[TMP5]], <8 x i32> [[TMP6]], <8 x i32> <i32 0, i32 9, i32 2, i32 11, i32 4, i32 13, i32 6, i32 15>16; CHECK-NEXT:    store <8 x i32> [[TMP7]], ptr null, align 1617; CHECK-NEXT:    ret i32 018;19entry:20  %0 = extractelement <16 x i32> %bc47.i, i64 021  %1 = extractelement <16 x i32> %bc, i64 022  %2 = extractelement <16 x i32> <i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1>, i64 023  %3 = mul i32 %1, %224  %4 = mul i32 0, 025  %5 = sub i32 %3, %426  %6 = mul i32 0, 027  %7 = mul i32 0, %128  %8 = add i32 %6, %729  store i32 %5, ptr null, align 1630  store i32 %8, ptr getelementptr inbounds ([9 x i32], ptr null, i64 0, i64 1), align 231  %9 = extractelement <16 x i32> zeroinitializer, i64 032  %10 = mul i32 %9, 033  %11 = extractelement <16 x i32> zeroinitializer, i64 034  %12 = mul i32 0, 035  %13 = sub i32 %10, %1236  %14 = mul i32 0, %037  %15 = mul i32 0, 038  %16 = add i32 %14, %1539  store i32 %13, ptr getelementptr inbounds ([9 x i32], ptr null, i64 0, i64 2), align 440  store i32 %16, ptr getelementptr inbounds ([9 x i32], ptr null, i64 0, i64 3), align 241  %17 = extractelement <16 x i32> <i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1>, i64 042  %18 = mul i32 %17, 043  %19 = mul i32 0, 044  %20 = sub i32 %18, %1945  %21 = extractelement <16 x i32> zeroinitializer, i64 146  %22 = mul i32 %21, %047  %23 = mul i32 0, %1748  %24 = add i32 %22, %2349  store i32 %20, ptr getelementptr inbounds ([9 x i32], ptr null, i64 0, i64 4), align 850  store i32 %24, ptr getelementptr inbounds ([9 x i32], ptr null, i64 0, i64 5), align 251  %25 = mul i32 0, %1152  %26 = extractelement <16 x i32> zeroinitializer, i64 053  %27 = mul i32 0, 054  %28 = sub i32 %25, %2755  %29 = mul i32 0, 056  %30 = mul i32 %26, 057  %31 = add i32 %29, %3058  store i32 %28, ptr getelementptr inbounds ([9 x i32], ptr null, i64 0, i64 6), align 459  store i32 %31, ptr getelementptr inbounds ([9 x i32], ptr null, i64 0, i64 7), align 260  ret i32 061}62 63 64