R600: Change UDIV/UREM to UDIVREM when legalizing types
authorTom Stellard <thomas.stellard@amd.com>
Tue, 29 Apr 2014 23:12:43 +0000 (23:12 +0000)
committerTom Stellard <thomas.stellard@amd.com>
Tue, 29 Apr 2014 23:12:43 +0000 (23:12 +0000)
commitdbe7f8723a610654e1131a87f0398641ca5f7ae9
treeec531e3ae107c313b9efcc726ed0c342bf4f8041
parent78fc9c53e5e9dd0f11d470459c8efe7472ca03e5
R600: Change UDIV/UREM to UDIVREM when legalizing types

When legalizing ops, with UDIV/UREM set to expand, they automatically
expand to UDIVREM (if legal or custom).
We need to do this manually for legalize types.

v2:
  SI should be set to Expand because the type is legal, and it is
    automatically lowered to UDIVREM if UDIVREM is Legal/Custom
  R600 should set to UDIV/UREM to Custom because it needs to lower them
    during type legalization

Patch by: Jan Vesely

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@207587 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/R600/AMDGPUISelLowering.cpp
lib/Target/R600/R600ISelLowering.cpp
lib/Target/R600/SIISelLowering.cpp