1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc < %s -mtriple=x86_64-unknown -mattr=+ssse3 | FileCheck %s --check-prefixes=SSE
3 ; RUN: llc < %s -mtriple=x86_64-unknown -mattr=+avx2 | FileCheck %s --check-prefixes=AVX
7 ; SSE: # %bb.0: # %entry
8 ; SSE-NEXT: pxor %xmm0, %xmm0
9 ; SSE-NEXT: phaddd %xmm0, %xmm0
10 ; SSE-NEXT: phaddd %xmm0, %xmm0
11 ; SSE-NEXT: movd %xmm0, %eax
15 ; AVX: # %bb.0: # %entry
16 ; AVX-NEXT: vpxor %xmm0, %xmm0, %xmm0
17 ; AVX-NEXT: vphaddd %xmm0, %xmm0, %xmm0
18 ; AVX-NEXT: vphaddd %xmm0, %xmm0, %xmm0
19 ; AVX-NEXT: vmovd %xmm0, %eax
22 %0 = call <4 x i32> @llvm.x86.ssse3.phadd.d.128(<4 x i32> zeroinitializer, <4 x i32> zeroinitializer)
23 %1 = call <4 x i32> @llvm.x86.ssse3.phadd.d.128(<4 x i32> %0, <4 x i32> zeroinitializer)
24 %vecext.i = extractelement <4 x i32> %1, i32 0
27 declare <4 x i32> @llvm.x86.ssse3.phadd.d.128(<4 x i32>, <4 x i32>)