R600: Don't set BypassSlowDiv for 64-bit division
authorTom Stellard <thomas.stellard@amd.com>
Mon, 22 Sep 2014 15:35:32 +0000 (15:35 +0000)
committerTom Stellard <thomas.stellard@amd.com>
Mon, 22 Sep 2014 15:35:32 +0000 (15:35 +0000)
BypassSlowDiv is used by codegen prepare to insert a run-time
check to see if the operands to a 64-bit division are really 32-bit
values and if they are it will do 32-bit division instead.

This is not useful for R600, which has predicated control flow since
both the 32-bit and 64-bit paths will be executed in most cases.  It
also increases code size which can lead to more instruction cache
misses.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@218252 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/R600/AMDGPUISelLowering.cpp

index d3ef77880d4dc58cd1b79bec8e662ddbcd4267df..29d3fc38e570254eeca25fcbd99947c3da703563 100644 (file)
@@ -392,9 +392,6 @@ AMDGPUTargetLowering::AMDGPUTargetLowering(TargetMachine &TM) :
   setIntDivIsCheap(false);
   setPow2SDivIsCheap(false);
 
-  // TODO: Investigate this when 64-bit divides are implemented.
-  addBypassSlowDiv(64, 32);
-
   // FIXME: Need to really handle these.
   MaxStoresPerMemcpy  = 4096;
   MaxStoresPerMemmove = 4096;