diff options
| author | Chad Rosier <mcrosier@apple.com> | 2011-12-15 22:11:31 +0000 |
|---|---|---|
| committer | Chad Rosier <mcrosier@apple.com> | 2011-12-15 22:11:31 +0000 |
| commit | 41dbf59e12ef3aa5c5694e137b200acbd3d0df20 (patch) | |
| tree | 840d710b9487e320d5dc8b6afab10ccb6606e905 /llvm/lib | |
| parent | cd1aba8b4dba01c15b90bd0a2a99750140e627e6 (diff) | |
| download | bcm5719-llvm-41dbf59e12ef3aa5c5694e137b200acbd3d0df20.tar.gz bcm5719-llvm-41dbf59e12ef3aa5c5694e137b200acbd3d0df20.zip | |
Add missing zmovl AVX patterns which were causing crashes.
Patch by Elena Demikhovsky <elena.demikhovsky@intel.com>!
llvm-svn: 146689
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/X86/X86InstrSSE.td | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86InstrSSE.td b/llvm/lib/Target/X86/X86InstrSSE.td index 24e7ee430e4..8c16fe57b13 100644 --- a/llvm/lib/Target/X86/X86InstrSSE.td +++ b/llvm/lib/Target/X86/X86InstrSSE.td @@ -618,6 +618,9 @@ let Predicates = [HasAVX] in { (SUBREG_TO_REG (i64 0), (v2f64 (VMOVSDrr (v2f64 (V_SET0)), FR64:$src)), sub_xmm)>; + def : Pat<(v4i64 (X86vzmovl (insert_subvector undef, + (v2i64 (scalar_to_vector (loadi64 addr:$src))), (i32 0)))), + (SUBREG_TO_REG (i64 0), (VMOVSDrm addr:$src), sub_sd)>; // Move low f64 and clear high bits. def : Pat<(v4f64 (X86vzmovl (v4f64 VR256:$src))), @@ -800,6 +803,9 @@ let Predicates = [HasAVX] in { def : Pat<(v8i32 (X86vzmovl (insert_subvector undef, (v4i32 VR128:$src), (i32 0)))), (SUBREG_TO_REG (i32 0), (VMOVAPSrr VR128:$src), sub_xmm)>; +def : Pat<(v4i64 (X86vzmovl + (insert_subvector undef, (v2i64 VR128:$src), (i32 0)))), + (SUBREG_TO_REG (i32 0), (VMOVAPSrr VR128:$src), sub_xmm)>; def : Pat<(v8f32 (X86vzmovl (insert_subvector undef, (v4f32 VR128:$src), (i32 0)))), (SUBREG_TO_REG (i32 0), (VMOVAPSrr VR128:$src), sub_xmm)>; |

