[X86] Add test case for PR53247
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Mon, 17 Jan 2022 19:02:44 +0000 (19:02 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Mon, 17 Jan 2022 19:02:44 +0000 (19:02 +0000)
Test case from Issue #53247

llvm/test/CodeGen/X86/pr53247.ll [new file with mode: 0644]

diff --git a/llvm/test/CodeGen/X86/pr53247.ll b/llvm/test/CodeGen/X86/pr53247.ll
new file mode 100644 (file)
index 0000000..2fc2ffb
--- /dev/null
@@ -0,0 +1,27 @@
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
+; RUN: llc < %s -mtriple=x86_64-unknown -mattr=+ssse3 | FileCheck %s --check-prefixes=SSE
+; RUN: llc < %s -mtriple=x86_64-unknown -mattr=+avx2 | FileCheck %s --check-prefixes=AVX
+
+define i32 @PR53247(){
+; SSE-LABEL: PR53247:
+; SSE:       # %bb.0: # %entry
+; SSE-NEXT:    pxor %xmm0, %xmm0
+; SSE-NEXT:    phaddd %xmm0, %xmm0
+; SSE-NEXT:    phaddd %xmm0, %xmm0
+; SSE-NEXT:    movd %xmm0, %eax
+; SSE-NEXT:    retq
+;
+; AVX-LABEL: PR53247:
+; AVX:       # %bb.0: # %entry
+; AVX-NEXT:    vpxor %xmm0, %xmm0, %xmm0
+; AVX-NEXT:    vphaddd %xmm0, %xmm0, %xmm0
+; AVX-NEXT:    vphaddd %xmm0, %xmm0, %xmm0
+; AVX-NEXT:    vmovd %xmm0, %eax
+; AVX-NEXT:    retq
+entry:
+  %0 = call <4 x i32> @llvm.x86.ssse3.phadd.d.128(<4 x i32> zeroinitializer, <4 x i32> zeroinitializer)
+  %1 = call <4 x i32> @llvm.x86.ssse3.phadd.d.128(<4 x i32> %0, <4 x i32> zeroinitializer)
+  %vecext.i = extractelement <4 x i32> %1, i32 0
+  ret i32 %vecext.i
+}
+declare <4 x i32> @llvm.x86.ssse3.phadd.d.128(<4 x i32>, <4 x i32>)