mirror of
https://github.com/RPCSX/llvm.git
synced 2025-02-04 03:17:51 +00:00
Fix copy and paste bug from r186491 to make v2f64 use MOVAPD/MOVUPD as it should.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186566 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
f7c45ce3f5
commit
fe754512dc
@ -270,9 +270,9 @@ X86FastISel::X86FastEmitStore(EVT VT, unsigned ValReg,
|
||||
break;
|
||||
case MVT::v2f64:
|
||||
if (Aligned)
|
||||
Opc = Subtarget->hasAVX() ? X86::VMOVAPSmr : X86::MOVAPSmr;
|
||||
Opc = Subtarget->hasAVX() ? X86::VMOVAPDmr : X86::MOVAPDmr;
|
||||
else
|
||||
Opc = Subtarget->hasAVX() ? X86::VMOVUPSmr : X86::MOVUPSmr;
|
||||
Opc = Subtarget->hasAVX() ? X86::VMOVUPDmr : X86::MOVUPDmr;
|
||||
break;
|
||||
case MVT::v4i32:
|
||||
case MVT::v2i64:
|
||||
|
@ -46,3 +46,19 @@ define <4 x float> @test_store_4xf32_aligned(<4 x float>* nocapture %addr, <4 x
|
||||
store <4 x float> %value, <4 x float>* %addr, align 16
|
||||
ret <4 x float> %value
|
||||
}
|
||||
|
||||
define <2 x double> @test_store_2xf64(<2 x double>* nocapture %addr, <2 x double> %value, <2 x double> %value2) {
|
||||
; CHECK: movupd
|
||||
; CHECK: ret
|
||||
%foo = fadd <2 x double> %value, %value2 ; to force dobule type on store
|
||||
store <2 x double> %foo, <2 x double>* %addr, align 1
|
||||
ret <2 x double> %foo
|
||||
}
|
||||
|
||||
define <2 x double> @test_store_2xf64_aligned(<2 x double>* nocapture %addr, <2 x double> %value, <2 x double> %value2) {
|
||||
; CHECK: movapd
|
||||
; CHECK: ret
|
||||
%foo = fadd <2 x double> %value, %value2 ; to force dobule type on store
|
||||
store <2 x double> %foo, <2 x double>* %addr, align 16
|
||||
ret <2 x double> %foo
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user