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

  agent.Process(tile_idx, tile_base);
}

template <typename InputIteratorT>
struct DeviceAdjacentDifferencePolicy
{
  using ValueT = typename std::iterator_traits<InputIteratorT>::value_type;

      AgentAdjacentDifferencePolicy<128,
                                    Nominal8BItemsToItems<ValueT>(7),
                                    BLOCK_LOAD_WARP_TRANSPOSE,
                                    MayAlias ? LOAD_CA : LOAD_LDG,
                                    BLOCK_STORE_WARP_TRANSPOSE>;
  };

