   agent.Process(tile_idx, tile_base);
 }
 
-template <typename InputIteratorT>
+template <typename InputIteratorT, bool MayAlias = true>
 struct DeviceAdjacentDifferencePolicy
 {
   using ValueT = typename std::iterator_traits<InputIteratorT>::value_type;

      AgentAdjacentDifferencePolicy<128,
                                    Nominal8BItemsToItems<ValueT>(7),
                                    BLOCK_LOAD_WARP_TRANSPOSE,
                                    LOAD_LDG,
                                    BLOCK_STORE_WARP_TRANSPOSE>;
  };


          bool MayAlias,
          bool ReadLeft,
          typename SelectedPolicy =
            DeviceAdjacentDifferencePolicy<InputIteratorT, MayAlias>>
struct DispatchAdjacentDifference : public SelectedPolicy
{
  using InputT = typename std::iterator_traits<InputIteratorT>::value_type;
