1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 11:13:28 +01:00
Go to file
Chad Rosier a588421976 When performing a truncating store, it's possible to rearrange the data
in-register, such that we can use a single vector store rather then a 
series of scalar stores.

For func_4_8 the generated code

	vldr	d16, LCPI0_0
	vmov	d17, r0, r1
	vadd.i16	d16, d17, d16
	vmov.u16	r0, d16[3]
	strb	r0, [r2, #3]
	vmov.u16	r0, d16[2]
	strb	r0, [r2, #2]
	vmov.u16	r0, d16[1]
	strb	r0, [r2, #1]
	vmov.u16	r0, d16[0]
	strb	r0, [r2]
	bx	lr

becomes

	vldr	d16, LCPI0_0
	vmov	d17, r0, r1
	vadd.i16	d16, d17, d16
	vuzp.8	d16, d17
	vst1.32	{d16[0]}, [r2, :32]
	bx	lr

I'm not fond of how this combine pessimizes 2012-03-13-DAGCombineBug.ll,
but I couldn't think of a way to judiciously apply this combine.

This

	ldrh	r0, [r0, #4]
	strh	r0, [r1]

becomes

	vldr	d16, [r0]
	vmov.u16	r0, d16[2]
	vmov.32	d16[0], r0
	vuzp.16	d16, d17
	vst1.32	{d16[0]}, [r1, :32]

PR11158
rdar://10703339

llvm-svn: 154340
2012-04-09 20:32:02 +00:00
autoconf Fix a problem in the target detection for Debian GNU/HURD 2012-04-05 19:34:15 +00:00
bindings [python] Add negative MemoryBuffer testcase 2012-03-22 11:23:52 +00:00
cmake Add InitializeNativeTargetDisassembler function. 2012-03-26 21:56:56 +00:00
docs Clarify that fpaccuracy metadata is giving the compiler permission to use a 2012-04-09 14:08:00 +00:00
examples Switch to a more idiomatic way of silencing unused variable warnings in 2012-02-20 00:02:49 +00:00
include Typo. 2012-04-09 17:54:34 +00:00
lib When performing a truncating store, it's possible to rearrange the data 2012-04-09 20:32:02 +00:00
projects Fix a problem in the target detection for Debian GNU/HURD 2012-04-05 19:34:15 +00:00
runtime Use the correct filename for the error message. 2012-03-28 02:39:06 +00:00
test When performing a truncating store, it's possible to rearrange the data 2012-04-09 20:32:02 +00:00
tools s/lto_codegen_whole_program_optimization/lto_codegen_set_whole_program_optimization/ 2012-04-09 08:32:21 +00:00
unittests Add YAML parser to Support. 2012-04-03 23:09:22 +00:00
utils Do not include multiple -arch options in CPPFLAGS. 2012-04-05 00:35:55 +00:00
.gitignore
CMakeLists.txt Add YAML parser to Support. 2012-04-03 23:09:22 +00:00
configure Fix a problem in the target detection for Debian GNU/HURD 2012-04-05 19:34:15 +00:00
CREDITS.TXT sort by alpha. 2012-03-12 21:12:59 +00:00
LICENSE.TXT Add YAML parser to Support. 2012-04-03 23:09:22 +00:00
llvm.spec.in Tidy up. s/Low Level Virtual Machine/LLVM/. 2012-01-25 22:00:23 +00:00
LLVMBuild.txt LLVMBuild: Introduce a common section which currently has a list of the 2011-12-12 22:45:54 +00:00
Makefile Makefile: add missing files to FilesToConfig 2012-01-17 02:56:49 +00:00
Makefile.common
Makefile.config.in Add profiling support for Intel Parallel Amplifier XE (VTune) for JITted code in LLVM. 2012-03-13 08:33:15 +00:00
Makefile.rules Use a posix compliant regexp in export file construction. 2012-03-12 20:58:14 +00:00
README.txt test commit 2012-03-20 13:12:38 +00:00

Low Level Virtual Machine (LLVM)
================================

This directory and its subdirectories contain source code for the Low Level
Virtual Machine, a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the HTML documentation provided in docs/index.html for further
assistance with LLVM.

If you're writing a package for LLVM, see docs/Packaging.html for our
suggestions.