mirror of
https://github.com/RPCS3/llvm.git
synced 2025-02-24 21:00:36 +00:00
[x86] Add the test for folding stack spills into pextrw.
This is a negative test as pextrw doesn't write to all 32-bits of the spilled GPR. This fold ended up happening when D32684 was landed and covers the regression that motivated reverting it in r304762. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@304763 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
565cfe059c
commit
446c2e7b47
@ -453,6 +453,21 @@ declare <16 x i8> @llvm.x86.sse42.pcmpistrm128(<16 x i8>, <16 x i8>, i8) nounwin
|
||||
|
||||
; TODO stack_fold_pextrb
|
||||
|
||||
; We can't naively fold pextrw as it only writes to a 16-bit memory location
|
||||
; even though it can store to a 32-bit register.
|
||||
define i16 @stack_fold_pextrw(<8 x i16> %a0) {
|
||||
; CHECK-LABEL: stack_fold_pextrw
|
||||
; CHECK: pextrw $1, {{%xmm[0-9][0-9]*}}, %[[GPR32:(e[a-z]+|r[0-9]+d)]]
|
||||
; CHECK: movl %[[GPR32]], {{-?[0-9]*}}(%rsp) {{.*#+}} 4-byte Spill
|
||||
; CHECK: movl {{-?[0-9]*}}(%rsp), %eax {{.*#+}} 4-byte Reload
|
||||
entry:
|
||||
; add forces execution domain
|
||||
%add = add <8 x i16> %a0, <i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7, i16 8>
|
||||
%extract = extractelement <8 x i16> %add, i32 1
|
||||
%asm = tail call <2 x i64> asm sideeffect "nop", "=x,~{rax},~{rbx},~{rcx},~{rdx},~{rsi},~{rdi},~{rbp},~{r8},~{r9},~{r10},~{r11},~{r12},~{r13},~{r14},~{r15}"()
|
||||
ret i16 %extract
|
||||
}
|
||||
|
||||
define i32 @stack_fold_pextrd(<4 x i32> %a0) {
|
||||
;CHECK-LABEL: stack_fold_pextrd
|
||||
;CHECK: pextrd $1, {{%xmm[0-9][0-9]*}}, {{-?[0-9]*}}(%rsp) {{.*#+}} 4-byte Folded Spill
|
||||
@ -473,8 +488,6 @@ define i64 @stack_fold_pextrq(<2 x i64> %a0) {
|
||||
ret i64 %1
|
||||
}
|
||||
|
||||
; TODO stack_fold_pextrw
|
||||
|
||||
define <4 x i32> @stack_fold_phaddd(<4 x i32> %a0, <4 x i32> %a1) {
|
||||
;CHECK-LABEL: stack_fold_phaddd
|
||||
;CHECK: phaddd {{-?[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 16-byte Folded Reload
|
||||
|
Loading…
x
Reference in New Issue
Block a user