ARM NEON: Merge a f32 bitcast of a v2i32 extractelt
authorArnold Schwaighofer <aschwaighofer@apple.com>
Tue, 19 Feb 2013 15:27:05 +0000 (15:27 +0000)
committerArnold Schwaighofer <aschwaighofer@apple.com>
Tue, 19 Feb 2013 15:27:05 +0000 (15:27 +0000)
commite5083442b26266eeaf2b3675d12e3d78336ad4ae
tree773e55cb5c2439cdba632c8190ee9960bd3c4d2b
parentd4409e2cecc376b7226e125fa2bbf9005649e2e3
ARM NEON: Merge a f32 bitcast of a v2i32 extractelt

A vectorized sitfp on doubles will get scalarized to a sequence of an
extract_element of <2 x i32>, a bitcast to f32 and a sitofp.
Due to the the extract_element, and the bitcast we will uneccessarily generate
moves between scalar and vector registers.

The patch fixes this by using a COPY_TO_REGCLASS and a EXTRACT_SUBREG to extract
the element from the vector instead.

radar://13191881

llvm-svn: 175520
llvm/lib/Target/ARM/ARMInstrNEON.td
llvm/test/CodeGen/ARM/neon_fpconv.ll