forked from OSchip/llvm-project
35 lines
1.3 KiB
LLVM
35 lines
1.3 KiB
LLVM
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
|
; RUN: opt < %s -mtriple=x86_64-unknown -slp-vectorizer -instcombine -S -slp-threshold=-10000 | FileCheck %s
|
|
|
|
define <8 x i32> @sdiv_v8i32_undefs(<8 x i32> %a) {
|
|
; CHECK-LABEL: @sdiv_v8i32_undefs(
|
|
; CHECK-NEXT: ret <8 x i32> poison
|
|
;
|
|
%a0 = extractelement <8 x i32> %a, i32 0
|
|
%a1 = extractelement <8 x i32> %a, i32 1
|
|
%a2 = extractelement <8 x i32> %a, i32 2
|
|
%a3 = extractelement <8 x i32> %a, i32 3
|
|
%a4 = extractelement <8 x i32> %a, i32 4
|
|
%a5 = extractelement <8 x i32> %a, i32 5
|
|
%a6 = extractelement <8 x i32> %a, i32 6
|
|
%a7 = extractelement <8 x i32> %a, i32 7
|
|
%ab0 = sdiv i32 %a0, undef
|
|
%ab1 = sdiv i32 %a1, 4
|
|
%ab2 = sdiv i32 %a2, 8
|
|
%ab3 = sdiv i32 %a3, 16
|
|
%ab4 = sdiv i32 %a4, undef
|
|
%ab5 = sdiv i32 %a5, 4
|
|
%ab6 = sdiv i32 %a6, 8
|
|
%ab7 = sdiv i32 %a7, 16
|
|
%r0 = insertelement <8 x i32> poison, i32 %ab0, i32 0
|
|
%r1 = insertelement <8 x i32> %r0, i32 %ab1, i32 1
|
|
%r2 = insertelement <8 x i32> %r1, i32 %ab2, i32 2
|
|
%r3 = insertelement <8 x i32> %r2, i32 %ab3, i32 3
|
|
%r4 = insertelement <8 x i32> %r3, i32 %ab4, i32 4
|
|
%r5 = insertelement <8 x i32> %r4, i32 %ab5, i32 5
|
|
%r6 = insertelement <8 x i32> %r5, i32 %ab6, i32 6
|
|
%r7 = insertelement <8 x i32> %r6, i32 %ab7, i32 7
|
|
ret <8 x i32> %r7
|
|
}
|
|
|