Enable default behavior for pmin, predux_min, etc
Reference issue
What does this implement/fix?
Currently, the default implementation for predux_min<PropagateFast> (and max) defaults to a scalar loop. This MR forwards predux_min<PropagateFast, Packet> to predux_min<Packet>, which is available on most platforms. If the packet type is integral, all propagation types are forwarded to predux_min<Packet>. Similarly for pmin<NaNPropagation>.
In summary:
Floating point types:
| Requested | Default |
|---|---|
| op<PropagateFast, Packet> | op |
| op<PropagateNaN, Packet? | specialized |
| op<PropagateNumbers, Packet> | specialized |
Integral types:
| Requested | Default |
|---|---|
| op<PropagateFast, Packet> | op |
| op<PropagateNaN, Packet> | op |
| op<PropagateNumbers, Packet> | op |
This deletes the PropagateFast specializations for the intel platforms as they are redundant.
Additional information
Edited by Charles Schlosser