mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-02-10 06:25:01 +00:00
fix a missing shuffle pattern, PR9009. Patch by Artiom Myaskouvskey!
llvm-svn: 124102
This commit is contained in:
parent
8f4ed7d057
commit
9ba0a83f2b
@ -5799,6 +5799,9 @@ def : Pat<(X86Movlps VR128:$src1,
|
|||||||
def : Pat<(v4f32 (X86Movlps VR128:$src1, VR128:$src2)),
|
def : Pat<(v4f32 (X86Movlps VR128:$src1, VR128:$src2)),
|
||||||
(MOVSDrr VR128:$src1, (EXTRACT_SUBREG (v4f32 VR128:$src2), sub_sd))>;
|
(MOVSDrr VR128:$src1, (EXTRACT_SUBREG (v4f32 VR128:$src2), sub_sd))>;
|
||||||
|
|
||||||
|
def : Pat<(v4i32 (X86Movlps VR128:$src1, VR128:$src2)),
|
||||||
|
(MOVSDrr VR128:$src1, (EXTRACT_SUBREG (v4i32 VR128:$src2), sub_sd))>;
|
||||||
|
|
||||||
// Shuffle with MOVLPD
|
// Shuffle with MOVLPD
|
||||||
def : Pat<(v2f64 (X86Movlpd VR128:$src1, (load addr:$src2))),
|
def : Pat<(v2f64 (X86Movlpd VR128:$src1, (load addr:$src2))),
|
||||||
(MOVLPDrm VR128:$src1, addr:$src2)>;
|
(MOVLPDrm VR128:$src1, addr:$src2)>;
|
||||||
|
@ -205,3 +205,12 @@ define <2 x double> @test16(<4 x double> * nocapture %srcA, <2 x double>* nocap
|
|||||||
ret <2 x double> %i7
|
ret <2 x double> %i7
|
||||||
}
|
}
|
||||||
|
|
||||||
|
; PR9009
|
||||||
|
define fastcc void @test17() nounwind {
|
||||||
|
entry:
|
||||||
|
%0 = insertelement <4 x i32> undef, i32 undef, i32 1
|
||||||
|
%1 = shufflevector <4 x i32> <i32 undef, i32 undef, i32 32768, i32 32768>, <4 x i32> %0, <4 x i32> <i32 4, i32 5, i32 2, i32 3>
|
||||||
|
%2 = bitcast <4 x i32> %1 to <4 x float>
|
||||||
|
store <4 x float> %2, <4 x float> * undef
|
||||||
|
ret void
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user