Cross-correlation with SDPSK modulation
Convert your input signal to an analytic signal with a Hilbert transformer, if your input signal is real.  Then run a single complex cross correlation filter.  Assuming no frequency offset, the phase of the correlator output at the correlation peak will be the input signal's phase shift from your reference signal.