summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
...
* IRgen: Fix silly thinko in r112021, which was generating code for the same exprDaniel Dunbar2010-09-031-0/+4
| | | | | | | twice. This showed up as an assert on the odd test case because we generated the decl map entry twice. llvm-svn: 112943
* stop looking for #uses comments.Chris Lattner2010-09-022-8/+8
| | | | llvm-svn: 112898
* remove some tests that aren't adding any value: the check lines don'tChris Lattner2010-09-024-153/+10
| | | | | | | make it clear what they're testing so there is no way to know it's right or to update it. llvm-svn: 112897
* Newline at end of file.Bill Wendling2010-09-021-1/+1
| | | | llvm-svn: 112871
* Correct this test for the fact that the number of uses is now printedDuncan Sands2010-09-021-6/+6
| | | | | | in a comment. llvm-svn: 112813
* Fix PR8029, a x86-32 ABI regression in introduced in r112211Chris Lattner2010-08-301-0/+7
| | | | llvm-svn: 112537
* add radar #Chris Lattner2010-08-261-0/+1
| | | | llvm-svn: 112212
* fix 2xi16 to pass as i32 instead of <2 x i16>. The former passes inChris Lattner2010-08-261-1/+7
| | | | | | | memory (as required) the later now passes in an xmm register. This fixes gcc.dg/compat/vector_1 on x86-32. llvm-svn: 112211
* vector of long and ulong are also classified as INTEGER in x86-64 abi,Chris Lattner2010-08-261-0/+6
| | | | | | | this fixes rdar://8358475 a failure of the gcc.dg/compat/vector_1 abi test. llvm-svn: 112205
* 1 x ulonglong needs to be classified as INTEGER, just like 1 x longlong,Chris Lattner2010-08-261-0/+5
| | | | | | this fixes a miscompilation on the included testcase, rdar://8359248 llvm-svn: 112201
* tame an assertion, fixing rdar://8357396Chris Lattner2010-08-261-0/+9
| | | | llvm-svn: 112174
* Revert r112043, static volatiles are removed by the optimizer. Thanks Chris!Argyrios Kyrtzidis2010-08-251-6/+1
| | | | llvm-svn: 112112
* Finally pass "two floats in a 64-bit unit" as a <2 x float> instead ofChris Lattner2010-08-251-3/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | as a double in the x86-64 ABI. This allows us to generate much better code for certain things, e.g.: _Complex float f32(_Complex float A, _Complex float B) { return A+B; } Used to compile into (look at the integer silliness!): _f32: ## @f32 ## BB#0: ## %entry movd %xmm1, %rax movd %eax, %xmm1 movd %xmm0, %rcx movd %ecx, %xmm0 addss %xmm1, %xmm0 movd %xmm0, %edx shrq $32, %rax movd %eax, %xmm0 shrq $32, %rcx movd %ecx, %xmm1 addss %xmm0, %xmm1 movd %xmm1, %eax shlq $32, %rax addq %rdx, %rax movd %rax, %xmm0 ret Now we get: _f32: ## @f32 movdqa %xmm0, %xmm2 addss %xmm1, %xmm2 pshufd $16, %xmm2, %xmm2 pshufd $1, %xmm1, %xmm1 pshufd $1, %xmm0, %xmm0 addss %xmm1, %xmm0 pshufd $16, %xmm0, %xmm1 movdqa %xmm2, %xmm0 unpcklps %xmm1, %xmm0 ret and compile stuff like: extern float _Complex ccoshf( float _Complex ) ; float _Complex ccosf ( float _Complex z ) { float _Complex iz; (__real__ iz) = -(__imag__ z); (__imag__ iz) = (__real__ z); return ccoshf(iz); } into: _ccosf: ## @ccosf ## BB#0: ## %entry pshufd $1, %xmm0, %xmm1 xorps LCPI4_0(%rip), %xmm1 unpcklps %xmm0, %xmm1 movaps %xmm1, %xmm0 jmp _ccoshf ## TAILCALL instead of: _ccosf: ## @ccosf ## BB#0: ## %entry movd %xmm0, %rax movq %rax, %rcx shlq $32, %rcx shrq $32, %rax xorl $-2147483648, %eax ## imm = 0xFFFFFFFF80000000 addq %rcx, %rax movd %rax, %xmm0 jmp _ccoshf ## TAILCALL There is still "stuff to be done" here for the struct case, but this resolves rdar://6379669 - [x86-64 ABI] Pass and return _Complex float / double efficiently llvm-svn: 112111
* Make sure volatile variables are emitted even if static. Fixes rdar://8315219Argyrios Kyrtzidis2010-08-251-1/+6
| | | | llvm-svn: 112043
* IRgen: Fix a horrible bug in pointer to bool conversion, which we were treatingDaniel Dunbar2010-08-251-0/+8
| | | | | | as a truncation not a comparison to null. llvm-svn: 112021
* Fix 'for' loop variables' scope.Devang Patel2010-08-251-0/+14
| | | | llvm-svn: 112002
* Add some missing X86-specific asm constraint letters, and fixDale Johannesen2010-08-241-0/+22
| | | | | | | some bugs in setting allowsRegister on the ones there. 8348447. llvm-svn: 111980
* Emit debug info for enum constants.Devang Patel2010-08-231-0/+11
| | | | llvm-svn: 111852
* Go back to asking CodeGenTypes whether a type is zero-initializable.John McCall2010-08-221-4/+4
| | | | | | | | | Make CGT defer to the ABI on all member pointer types. This requires giving CGT a handle to the ABI. It's way easier to make that work if we avoid lazily creating the ABI. Make it so. llvm-svn: 111786
* Avoid including mm_malloc.h in a cc1 test, it pulls in system headers.Benjamin Kramer2010-08-211-0/+2
| | | | llvm-svn: 111738
* This test needs a triple: it's checking the alignment of a pointer in bytes.John McCall2010-08-211-1/+1
| | | | llvm-svn: 111727
* IRgen: Set the alignment correctly when creating LValue for a decls.Daniel Dunbar2010-08-212-8/+97
| | | | | | | - Fixes PR5598. - Review appreciated. llvm-svn: 111726
* Improve test coverage.Daniel Dunbar2010-08-211-0/+7
| | | | llvm-svn: 111712
* fix some vector extractions to return properly zero extended valuesChris Lattner2010-08-201-1/+14
| | | | | | | (instead of sign extending) to match ICC. GCC is changing this in a series of their own PRs (e.g. 41323). llvm-svn: 111637
* support for predicates with bool/pixel argumentsAnton Yartsev2010-08-191-0/+193
| | | | llvm-svn: 111515
* support for the rest of AltiVec functions with bool/pixel arguments and ↵Anton Yartsev2010-08-191-49/+509
| | | | | | return values (except predicates) llvm-svn: 111511
* support for vec_perm and all dependent functions (vec_mergeh, vec_mergel, ↵Anton Yartsev2010-08-191-0/+39
| | | | | | vec_pack, vec_sld, vec_splat) with bool/pixel arguments and return values llvm-svn: 111509
* support for vec_add, vec_adds, vec_and, vec_andc with bool argumentsAnton Yartsev2010-08-161-15/+182
| | | | llvm-svn: 111141
* Make use of __func__ in a block actually refer toFariborz Jahanian2010-08-131-0/+1
| | | | | | block's helper function. Fixes radar 7860965. llvm-svn: 110988
* update test to reflect r110876 change.Devang Patel2010-08-121-1/+1
| | | | llvm-svn: 110884
* Revise r110163: don't mark weak functions nounwind, because the optimizerJohn McCall2010-08-111-0/+7
| | | | | | treats that as a contract to be fulfilled by any replacements. llvm-svn: 110864
* Remove rsqrtps_nr256 and sqrtps_nr256 builtins, at least until we need themBruno Cardoso Lopes2010-08-111-2/+0
| | | | llvm-svn: 110844
* ARM: Recognize single precision float register names.Daniel Dunbar2010-08-111-0/+14
| | | | | | | - We don't recognize double or NEON register names yet -- we don't have the infrastructure to generate the right clobbers for them. llvm-svn: 110775
* ARM: Swap which registers we consider real / aliases to match LLVM and llvm-gcc.Daniel Dunbar2010-08-111-0/+8
| | | | llvm-svn: 110774
* Remove 256-bit cast built-ins and make the AVX intrinsic call llvm ↵Bruno Cardoso Lopes2010-08-111-6/+0
| | | | | | __builtin_shufflevector with the appropriate arguments llvm-svn: 110771
* Remove 256-bit unpack built-ins and make the AVX intrinsic call llvm ↵Bruno Cardoso Lopes2010-08-111-4/+0
| | | | | | __builtin_shufflevector with the appropriate arguments llvm-svn: 110768
* Remove 256-bit shuffle built-ins and make the AVX intrinsic call llvm ↵Bruno Cardoso Lopes2010-08-111-2/+0
| | | | | | __builtin_shufflevector with the appropriate arguments llvm-svn: 110766
* Something's wrong with this test on other platforms. I'll probably need to ↵John Thompson2010-08-101-23/+0
| | | | | | simplify it later. For now revert. llvm-svn: 110738
* Slightly revised handling of mult-alt constraints, to avoid an assert, until ↵John Thompson2010-08-101-0/+23
| | | | | | we have the full fix. llvm-svn: 110706
* Do not use DIGlobalVariable to emit debugging information for enums.Devang Patel2010-08-101-0/+8
| | | | llvm-svn: 110697
* Even if a constant's evaluated value is used, emit debug info for the ↵Devang Patel2010-08-101-0/+5
| | | | | | constant variable. llvm-svn: 110660
* Make replicate intrinsics use shufflevector instead of dup builtins, also ↵Bruno Cardoso Lopes2010-08-101-3/+0
| | | | | | remove the dup builtins llvm-svn: 110646
* There is no need to pubish file static variable's name. Do not rely on this ↵Devang Patel2010-08-101-1/+1
| | | | | | code gen bug to check whether debug info is generated for such variables or not. llvm-svn: 110640
* Thread local variables aren't considered common linkage.Eric Christopher2010-08-081-0/+1
| | | | llvm-svn: 110530
* Correct -ftrapv to trap on errors, instead of calling theChris Lattner2010-08-071-24/+3
| | | | | | | | | | | | | | | | __overflow_handler entrypoint that David Chisnall made up. Calling __overflow_handler is not part of the contract of -ftrapv provided by GCC, and should never have been checked in in the first place. According to: http://permalink.gmane.org/gmane.comp.compilers.clang.devel/8699 David is using this for some of arbitrary precision integer stuff or something, which is not an appropriate thing to implement on this. llvm-svn: 110490
* Prevent these tests from dirtying the tree with output files that aren't evenChandler Carruth2010-08-063-4/+3
| | | | | | used for the test. llvm-svn: 110431
* We don't want to support built-ins which aren't needed by the intrinsics. ↵Bruno Cardoso Lopes2010-08-051-16/+0
| | | | | | Remove them llvm-svn: 110399
* Fix a major bug with -ftrapv and ++/--. Patch by David Keaton!John McCall2010-08-051-3/+65
| | | | llvm-svn: 110347
* Tests for #pragma GCC visibility.Eli Friedman2010-08-051-0/+24
| | | | llvm-svn: 110316
* Add more AVX 256-bit intrinsics and test cases for themBruno Cardoso Lopes2010-08-041-0/+36
| | | | llvm-svn: 110178
OpenPOWER on IntegriCloud