[x86] fix assert with horizontal math + broadcast of vector (PR43402)
[llvm-core.git] / test / CodeGen / X86 / pr34271-1.ll
blobd341ceb1c11e88cae602049ad8c9966f6f9034bf
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu -mattr=avx512vl,avx512bw | FileCheck %s
4 define <16 x i16> @foo(<16 x i32> %i) {
5 ; CHECK-LABEL: foo:
6 ; CHECK:       # %bb.0:
7 ; CHECK-NEXT:    vpminud {{.*}}(%rip){1to16}, %zmm0, %zmm0
8 ; CHECK-NEXT:    vpmovdw %zmm0, %ymm0
9 ; CHECK-NEXT:    retq
10   %x3 = icmp ult <16 x i32> %i, <i32 16843009, i32 16843009, i32 16843009, i32 16843009, i32 16843009, i32 16843009, i32 16843009, i32 16843009, i32 16843009, i32 16843009, i32 16843009, i32 16843009, i32 16843009, i32 16843009, i32 16843009, i32 16843009>
11   %x5 = select <16 x i1> %x3, <16 x i32> %i, <16 x i32> <i32 16843009, i32 16843009, i32 16843009, i32 16843009, i32 16843009, i32 16843009, i32 16843009, i32 16843009, i32 16843009, i32 16843009, i32 16843009, i32 16843009, i32 16843009, i32 16843009, i32 16843009, i32 16843009>
12   %x6 = trunc <16 x i32> %x5 to <16 x i16>
13   ret <16 x i16> %x6