summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/X86/avx-win64.ll
Commit message (Collapse)AuthorAgeFilesLines
* [x86] Fix AVX maskload/store intrinsic prototypes.Andrea Di Biagio2015-10-201-2/+0
| | | | | | | | | | | | | | | | | | | | | The mask value type for maskload/maskstore GCC builtins is never a vector of packed floats/doubles. This patch fixes the following issues: 1. The mask argument for builtin_ia32_maskloadpd and builtin_ia32_maskstorepd should be of type llvm_v2i64_ty and not llvm_v2f64_ty. 2. The mask argument for builtin_ia32_maskloadpd256 and builtin_ia32_maskstorepd256 should be of type llvm_v4i64_ty and not llvm_v4f64_ty. 3. The mask argument for builtin_ia32_maskloadps and builtin_ia32_maskstoreps should be of type llvm_v4i32_ty and not llvm_v4f32_ty. 4. The mask argument for builtin_ia32_maskloadps256 and builtin_ia32_maskstoreps256 should be of type llvm_v8i32_ty and not llvm_v8f32_ty. Differential Revision: http://reviews.llvm.org/D13776 llvm-svn: 250817
* Passing AVX 256-bit structures in Win64 was wrong.Elena Demikhovsky2012-02-011-1/+0
| | | | | | Fixed Win64 calling conventions. llvm-svn: 149494
* Handle call-clobbered ymm registers on Win64.Jakob Stoklund Olesen2012-01-261-0/+48
The Win64 calling convention has xmm6-15 as callee-saved while still clobbering all ymm registers. Add a YMM_HI_6_15 pseudo-register that aliases the clobbered part of the ymm registers, and mark that as call-clobbered. This allows live xmm registers across calls. This hack wouldn't be necessary with RegisterMask operands representing the call clobbers, but they are not quite operational yet. llvm-svn: 149088
OpenPOWER on IntegriCloud