radeon/llvm: Use multiclasses for floating point loads
authorTom Stellard <thomas.stellard@amd.com>
Tue, 10 Jul 2012 15:15:49 +0000 (11:15 -0400)
committerTom Stellard <thomas.stellard@amd.com>
Wed, 11 Jul 2012 17:47:20 +0000 (17:47 +0000)
commit49ae102ee346d4be6a61ebdaba6e5d5ad8469407
tree069e17b22b82de1661c1f81cb1e08a80ec507d28
parentbbdf3af8577ca61fc54c4a1615e80940c904636e
radeon/llvm: Use multiclasses for floating point loads

The original strategy for handling floating point loads, which was to
lower (f32 load) to (f32 bitcast (i32 load)) wasn't really working.  The
main problem was that the DAG legalizer couldn't handle replacing a node
with two results (load) with a node with only one result (bitcast).
src/gallium/drivers/radeon/AMDGPUISelLowering.cpp
src/gallium/drivers/radeon/AMDGPUISelLowering.h
src/gallium/drivers/radeon/R600CodeEmitter.cpp
src/gallium/drivers/radeon/R600ISelLowering.cpp
src/gallium/drivers/radeon/R600Instructions.td
src/gallium/drivers/radeon/SIInstrInfo.td
src/gallium/drivers/radeon/SIInstructions.td