Amara Emerson 322d0afd87 [llvm][mlir] Promote the experimental reduction intrinsics to be first class intrinsics.
This change renames the intrinsics to not have "experimental" in the name.

The autoupgrader will handle legacy intrinsics.

Relevant ML thread: http://lists.llvm.org/pipermail/llvm-dev/2020-April/140729.html

Differential Revision: https://reviews.llvm.org/D88787
2020-10-07 10:36:44 -07:00

78 lines
3.9 KiB
LLVM

; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt -reassociate -slp-vectorizer -slp-vectorize-hor -slp-vectorize-hor-store -S < %s -mtriple=x86_64-apple-macosx -mcpu=corei7-avx -mattr=+avx2 | FileCheck %s
define signext i8 @Foo(<32 x i8>* %__v) {
; CHECK-LABEL: @Foo(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[TMP0:%.*]] = load <32 x i8>, <32 x i8>* [[__V:%.*]], align 32
; CHECK-NEXT: [[TMP1:%.*]] = call i8 @llvm.vector.reduce.add.v32i8(<32 x i8> [[TMP0]])
; CHECK-NEXT: ret i8 [[TMP1]]
;
entry:
%0 = load <32 x i8>, <32 x i8>* %__v, align 32
%vecext.i.i.i = extractelement <32 x i8> %0, i64 0
%vecext.i.i.1.i = extractelement <32 x i8> %0, i64 1
%add.i.1.i = add i8 %vecext.i.i.1.i, %vecext.i.i.i
%vecext.i.i.2.i = extractelement <32 x i8> %0, i64 2
%add.i.2.i = add i8 %vecext.i.i.2.i, %add.i.1.i
%vecext.i.i.3.i = extractelement <32 x i8> %0, i64 3
%add.i.3.i = add i8 %vecext.i.i.3.i, %add.i.2.i
%vecext.i.i.4.i = extractelement <32 x i8> %0, i64 4
%add.i.4.i = add i8 %vecext.i.i.4.i, %add.i.3.i
%vecext.i.i.5.i = extractelement <32 x i8> %0, i64 5
%add.i.5.i = add i8 %vecext.i.i.5.i, %add.i.4.i
%vecext.i.i.6.i = extractelement <32 x i8> %0, i64 6
%add.i.6.i = add i8 %vecext.i.i.6.i, %add.i.5.i
%vecext.i.i.7.i = extractelement <32 x i8> %0, i64 7
%add.i.7.i = add i8 %vecext.i.i.7.i, %add.i.6.i
%vecext.i.i.8.i = extractelement <32 x i8> %0, i64 8
%add.i.8.i = add i8 %vecext.i.i.8.i, %add.i.7.i
%vecext.i.i.9.i = extractelement <32 x i8> %0, i64 9
%add.i.9.i = add i8 %vecext.i.i.9.i, %add.i.8.i
%vecext.i.i.10.i = extractelement <32 x i8> %0, i64 10
%add.i.10.i = add i8 %vecext.i.i.10.i, %add.i.9.i
%vecext.i.i.11.i = extractelement <32 x i8> %0, i64 11
%add.i.11.i = add i8 %vecext.i.i.11.i, %add.i.10.i
%vecext.i.i.12.i = extractelement <32 x i8> %0, i64 12
%add.i.12.i = add i8 %vecext.i.i.12.i, %add.i.11.i
%vecext.i.i.13.i = extractelement <32 x i8> %0, i64 13
%add.i.13.i = add i8 %vecext.i.i.13.i, %add.i.12.i
%vecext.i.i.14.i = extractelement <32 x i8> %0, i64 14
%add.i.14.i = add i8 %vecext.i.i.14.i, %add.i.13.i
%vecext.i.i.15.i = extractelement <32 x i8> %0, i64 15
%add.i.15.i = add i8 %vecext.i.i.15.i, %add.i.14.i
%vecext.i.i.16.i = extractelement <32 x i8> %0, i64 16
%add.i.16.i = add i8 %vecext.i.i.16.i, %add.i.15.i
%vecext.i.i.17.i = extractelement <32 x i8> %0, i64 17
%add.i.17.i = add i8 %vecext.i.i.17.i, %add.i.16.i
%vecext.i.i.18.i = extractelement <32 x i8> %0, i64 18
%add.i.18.i = add i8 %vecext.i.i.18.i, %add.i.17.i
%vecext.i.i.19.i = extractelement <32 x i8> %0, i64 19
%add.i.19.i = add i8 %vecext.i.i.19.i, %add.i.18.i
%vecext.i.i.20.i = extractelement <32 x i8> %0, i64 20
%add.i.20.i = add i8 %vecext.i.i.20.i, %add.i.19.i
%vecext.i.i.21.i = extractelement <32 x i8> %0, i64 21
%add.i.21.i = add i8 %vecext.i.i.21.i, %add.i.20.i
%vecext.i.i.22.i = extractelement <32 x i8> %0, i64 22
%add.i.22.i = add i8 %vecext.i.i.22.i, %add.i.21.i
%vecext.i.i.23.i = extractelement <32 x i8> %0, i64 23
%add.i.23.i = add i8 %vecext.i.i.23.i, %add.i.22.i
%vecext.i.i.24.i = extractelement <32 x i8> %0, i64 24
%add.i.24.i = add i8 %vecext.i.i.24.i, %add.i.23.i
%vecext.i.i.25.i = extractelement <32 x i8> %0, i64 25
%add.i.25.i = add i8 %vecext.i.i.25.i, %add.i.24.i
%vecext.i.i.26.i = extractelement <32 x i8> %0, i64 26
%add.i.26.i = add i8 %vecext.i.i.26.i, %add.i.25.i
%vecext.i.i.27.i = extractelement <32 x i8> %0, i64 27
%add.i.27.i = add i8 %vecext.i.i.27.i, %add.i.26.i
%vecext.i.i.28.i = extractelement <32 x i8> %0, i64 28
%add.i.28.i = add i8 %vecext.i.i.28.i, %add.i.27.i
%vecext.i.i.29.i = extractelement <32 x i8> %0, i64 29
%add.i.29.i = add i8 %vecext.i.i.29.i, %add.i.28.i
%vecext.i.i.30.i = extractelement <32 x i8> %0, i64 30
%add.i.30.i = add i8 %vecext.i.i.30.i, %add.i.29.i
%vecext.i.i.31.i = extractelement <32 x i8> %0, i64 31
%add.i.31.i = add i8 %vecext.i.i.31.i, %add.i.30.i
ret i8 %add.i.31.i
}