mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-02-05 03:36:43 +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)),
|
||||
(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
|
||||
def : Pat<(v2f64 (X86Movlpd VR128:$src1, (load 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
|
||||
}
|
||||
|
||||
; 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