diff options
author | Chris Lattner <sabre@nondot.org> | 2007-04-14 23:02:14 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2007-04-14 23:02:14 +0000 |
commit | 7bfdd0abe10b593465677599bc292e0ae89c9aee (patch) | |
tree | a945496b3d8d91c8acec70a7c6acd1a42cbb6469 /llvm/test/Transforms/CodeExtractor | |
parent | 45ab14d084d534d71cf264daa6efb4da68f475d6 (diff) | |
download | bcm5719-llvm-7bfdd0abe10b593465677599bc292e0ae89c9aee.tar.gz bcm5719-llvm-7bfdd0abe10b593465677599bc292e0ae89c9aee.zip |
Implement Transforms/InstCombine/vec_extract_elt.ll, transforming:
define i32 @test(float %f) {
%tmp7 = insertelement <4 x float> undef, float %f, i32 0
%tmp17 = bitcast <4 x float> %tmp7 to <4 x i32>
%tmp19 = extractelement <4 x i32> %tmp17, i32 0
ret i32 %tmp19
}
into:
define i32 @test(float %f) {
%tmp19 = bitcast float %f to i32 ; <i32> [#uses=1]
ret i32 %tmp19
}
On PPC, this is the difference between:
_test:
mfspr r2, 256
oris r3, r2, 8192
mtspr 256, r3
stfs f1, -16(r1)
addi r3, r1, -16
addi r4, r1, -32
lvx v2, 0, r3
stvx v2, 0, r4
lwz r3, -32(r1)
mtspr 256, r2
blr
and:
_test:
stfs f1, -4(r1)
nop
nop
nop
lwz r3, -4(r1)
blr
llvm-svn: 36025
Diffstat (limited to 'llvm/test/Transforms/CodeExtractor')
0 files changed, 0 insertions, 0 deletions