; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 6 ; RUN: llc < %s -mtriple=x86_64-- -mcpu=x86-64-v3 | FileCheck %s ; RUN: llc < %s -mtriple=x86_64-- -mcpu=x86-64-v4 | FileCheck %s define i256 @PR173924(<8 x i256> %a0) { ; CHECK-LABEL: PR173924: ; CHECK: # %bb.0: ; CHECK-NEXT: movq %rdi, %rax ; CHECK-NEXT: movl {{[0-9]+}}(%rsp), %ecx ; CHECK-NEXT: movl {{[0-9]+}}(%rsp), %edi ; CHECK-NEXT: movl {{[0-9]+}}(%rsp), %r8d ; CHECK-NEXT: movl {{[0-9]+}}(%rsp), %edx ; CHECK-NEXT: movl {{[0-9]+}}(%rsp), %r10d ; CHECK-NEXT: movl {{[0-9]+}}(%rsp), %r11d ; CHECK-NEXT: andl $1, %r11d ; CHECK-NEXT: andl $1, %r9d ; CHECK-NEXT: addl %r11d, %r9d ; CHECK-NEXT: andl $1, %r10d ; CHECK-NEXT: andl $1, %edx ; CHECK-NEXT: addl %r10d, %edx ; CHECK-NEXT: addl %r9d, %edx ; CHECK-NEXT: andl $1, %r8d ; CHECK-NEXT: andl $1, %esi ; CHECK-NEXT: addl %r8d, %esi ; CHECK-NEXT: andl $1, %edi ; CHECK-NEXT: andl $1, %ecx ; CHECK-NEXT: addl %edi, %ecx ; CHECK-NEXT: addl %esi, %ecx ; CHECK-NEXT: addl %edx, %ecx ; CHECK-NEXT: vmovd %ecx, %xmm0 ; CHECK-NEXT: vmovdqu %ymm0, (%rax) ; CHECK-NEXT: vzeroupper ; CHECK-NEXT: retq %m = and <8 x i256> %a0, splat (i256 1) %r = call i256 @llvm.vector.reduce.add.v8i256(<8 x i256> %m) ret i256 %r }