diff options
| author | Nate Begeman <natebegeman@mac.com> | 2005-08-14 01:20:53 +0000 |
|---|---|---|
| committer | Nate Begeman <natebegeman@mac.com> | 2005-08-14 01:20:53 +0000 |
| commit | 36853ee1fd87d1b1987ce0839ba75b3789f470e3 (patch) | |
| tree | 5a955ec23a0aa1d88da261446f6024799a906da7 /llvm/lib/Target | |
| parent | 83f6b98c420e4af7e0b8ae5f1da611fdd1b778e6 (diff) | |
| download | bcm5719-llvm-36853ee1fd87d1b1987ce0839ba75b3789f470e3.tar.gz bcm5719-llvm-36853ee1fd87d1b1987ce0839ba75b3789f470e3.zip | |
Teach the legalizer how to legalize FP_TO_UINT.
Teach the legalizer to promote FP_TO_UINT to FP_TO_SINT if the wider
FP_TO_UINT is also illegal. This allows us on PPC to codegen
unsigned short foo(float a) { return a; }
as:
_foo:
.LBB_foo_0: ; entry
fctiwz f0, f1
stfd f0, -8(r1)
lwz r2, -4(r1)
rlwinm r3, r2, 0, 16, 31
blr
instead of:
_foo:
.LBB_foo_0: ; entry
fctiwz f0, f1
stfd f0, -8(r1)
lwz r2, -4(r1)
lis r3, ha16(.CPI_foo_0)
lfs f0, lo16(.CPI_foo_0)(r3)
fcmpu cr0, f1, f0
blt .LBB_foo_2 ; entry
.LBB_foo_1: ; entry
fsubs f0, f1, f0
fctiwz f0, f0
stfd f0, -16(r1)
lwz r2, -12(r1)
xoris r2, r2, 32768
.LBB_foo_2: ; entry
rlwinm r3, r2, 0, 16, 31
blr
llvm-svn: 22785
Diffstat (limited to 'llvm/lib/Target')
0 files changed, 0 insertions, 0 deletions

