func subP503(z, x, y *common.Fp) {
	var borrow uint64
	for i := 0; i < FpWords; i++ {
		z[i], borrow = bits.Sub64(x[i], y[i], borrow)
	}
	mask := uint64(0 - borrow)
	borrow = 0
	for i := 0; i < FpWords; i++ {
		z[i], borrow = bits.Add64(z[i], P503x2[i]&mask, borrow)
	}
}
Compute z = x - y (mod p).
package p503
import (
	"math/bits"
	"github.com/cloudflare/circl/dh/sidh/internal/common"
)
func addP503(z, x, y *common.Fp) {
	var carry uint64
	for i := 0; i < FpWords; i++ {
		z[i], carry = bits.Add64(x[i], y[i], carry)
	}
	carry = 0
	for i := 0; i < FpWords; i++ {
		z[i], carry = bits.Sub64(z[i], P503x2[i], carry)
	}
	mask := uint64(0 - carry)
	carry = 0
	for i := 0; i < FpWords; i++ {
		z[i], carry = bits.Add64(z[i], P503x2[i]&mask, carry)
	}
}