! fmod(x,y)
! Middle-range numbers.
3M	    ALL	    1	    2	    OK	    1
3M	    ALL	    1	    -2	    OK	    1
3M	    ALL	    -1	    2	    OK	    -1
3M	    ALL	    -1	    -2	    OK	    -1
3M	    ALL	    3	    2	    OK	    1
3M	    ALL	    3	    -2	    OK	    1
3M	    ALL	    -3	    2	    OK	    -1
3M	    ALL	    -3	    -2	    OK	    -1
3M	    ALL	    2	    2	    OK	    0
3M	    ALL	    2	    -2		 OK		0
3M	    ALL	    -2		 2		 OK		-0
3M	    ALL	    -2		 -2		  OK	-0
3M	    ALL	    1i1	  2		  OK	  1i1
3M	    ALL	    3d1	  2		  OK	  1d4
3M	    ALL	    1	    4	    OK	    1
3M	    ALL	    2	    4	    OK	    2
3M	    ALL	    3	    4	    OK	    3
3M	    ALL	    4	    4	    OK	    0
3M	    ALL	    5	    4	    OK	    1
3M	    ALL	    6	    4	    OK	    2
3M	    ALL	    7	    4	    OK	    3
3M	    ALL	    8	    4	    OK	    0
3M	    ALL	    0	    1m1	  OK	  0
3M	    ALL	    1m3	  1m1   OK	    1m3
3M	    ALL	    3m3	  1m1   OK	    3m3
3M	    ALL	    5m3	  1m1   OK	    1m3
! Step across jump.
3M	    ALL	    2i1	  4		  OK	  2i1
3M	    ALL	    2i1	  -4	  OK	  2i1
3M	    ALL	    -2i1  4		  OK	  -2i1
3M	    ALL	    -2i1  -4	  OK	  -2i1
3M	    ALL	    2i8	  4		  OK	  2i8
3M	    ALL	    6d1	  4		  OK	  2d4
3M	    ALL	    6d1	  -4	  OK	  2d4
3M	    ALL	    -6d1  4		  OK	  -2d4
3M	    ALL	    -6d1  -4	  OK	  -2d4
3M	    ALL	    6d8	  4		  OK	  2d8d8d8d8
3M	    ALL	    1m2	  1m1   OK	    1m2
3M	    ALL	    1i1m2 1m1 OK	  	1i1m2
! (1+x)/(1+y), x,y<<1.
3M	    ALL	    1i1	  1i5   OK	    1i1
3M	    ALL	    1i1	  -1i5  OK	    1i1
3M	    ALL	    -1i1  1i5   OK	    -1i1
3M	    ALL	    -1i1  -1i5  OK	    -1i1
3M	    ALL	    1i2	  1i5   OK	    1i2
3M	    ALL	    1i3	  1i5   OK	    1i3
3M	    ALL	    1i4	  1i5   OK	    1i4
3M	    ALL	    1i6	  1i5   OK	    1u1
3M	    ALL	    3d1	  3		  OK	3d1
3M	    ALL	    3d1	  -3	  OK	3d1
3M	    ALL	    -3d1  3		  OK	-3d1
3M	    ALL	    -3d1  -3	  OK	-3d1
3M	    ALL	    2d1	  2		  OK	2d1
3M	    ALL	    1i1	  1d2   OK	    1u2
3M	    ALL	    1	    1d2	  OK	1u1
3M	    ALL	    1d4	  1d2   OK	    1d4
3M	    ALL	    1d1	  2d1   OK	    1d1
3M	    ALL	    1	    2d1	  OK	1
! Large numbers.
3M	    ALL	    Hm1i1  Hm1d2  OK	Hm1u2
3M	    ALL	    Hm1	   Hm1d2  OK	Hm1u1
3M	    ALL	    Hm1d4  Hm1d2  OK	Hm1d4
3M	    ALL	    Hm1d1  Hd1  OK	    Hm1d1
3M	    ALL	    Hm1		Hd1  OK	  	Hm1
3M	    ALL	    Hm2		Hm1	  OK	Hm2
3M	    ALL	    Hd1	 Hd2  OK	  	Hd1u1
3M	    ALL	    Hd1	 -Hd2 OK	  	Hd1u1
3M	    ALL	    -Hd1 Hd2  OK	  	-Hd1u1
3M	    ALL	    -Hd1 -Hd2 OK	  	-Hd1u1
3M	    ALL	    Hm1u1  Hm1u4  OK	Hm1u1
3M	    ALL	    Hd1	 Hm1	  OK	Hm1d2
3M	    ALL	    Hm1i3  Hm1i5  OK	Hm1i3
3M	    ALL	    Hm1i4  Hm1i5  OK	Hm1i4
3M	    ALL	    Hm1i6  Hm1i5  OK	Hm1u1
! Large and small numbers.
3M	    ALL	    Hd1	 0i1   OK	    0
3M	    ALL	    Hd1	 -0i1  OK	    0
3M	    ALL	    -Hd1 0i1   OK	   	-0
3M	    ALL	    -Hd1 -0i1  OK	   	-0
3M	    ALL	    Hd1	 Eu1  OK	  	0
3M	    ALL	    Hd1	 Ep1d1  OK	    0
3M	    ALL	    Hd1	 E	    OK	    0
3M	    ALL	    Hm1d1  Hm1	 OK	    Hm1d1
3M	    ALL	    Hm1d1  -Hm1	 OK	    Hm1d1
3M	    ALL	    -Hm1d1 Hm1	 OK	    -Hm1d1
3M	    ALL	    -Hm1d1 -Hm1	 OK	    -Hm1d1
! Small numbers.
3M	    ALL	    0i1	  0i4   OK		 0i1
3M	    ALL	    0i1	  -0i4  OK		 0i1
3M	    ALL	    -0i1  0i4   OK		 -0i1
3M	    ALL	    -0i1  -0i4  OK		 -0i1
3M	    ALL	    0i2	  0i4   OK		 0i2
3M	    ALL	    0i3	  0i4   OK		 0i3
3M	    ALL	    0i3	  -0i4  OK		 0i3
3M	    ALL	    -0i3  0i4   OK		 -0i3
3M	    ALL	    -0i3  -0i4  OK		 -0i3
3M	    ALL	    0i4	  0i4   OK	    0
3M	    ALL	    0i4	  -0i4  OK	    0
3M	    ALL	    -0i4  -0i4  OK	    -0
3M	    ALL	    -0i4  0i4   OK	    -0
3M	    ALL	    Ep9d1  Ep8	OK		Ep8d2
3M	    ALL	    Ei1	 Ed2  OK	   	Eu3
3M	    ALL	    E	   Ed2  OK		Eu2
3M	    ALL	    Ed4	 Ed2  OK	   	Ed4
3M	    ALL	    Ed4	 -Ed2  OK	    Ed4
3M	    ALL	    -Ed4  Ed2  OK	    -Ed4
3M	    ALL	    -Ed4  -Ed2  OK		-Ed4
3M	    ALL	    Ed1	 Ep1d1  OK		Ed1
3M	    ALL	    E	   Ep1d1  OK	E
3M	    ALL	    Ei3	 Ei5  OK	   	Ei3
3M	    ALL	    Ei4	 Ei5  OK	   	Ei4
3M	    ALL	    Ei6	 Ei5  OK	   	Eu1
3M	    ALL	    Ep1d1  Ep1	 OK		Ep1d1
! Special case: invalid operations delivering NaNs.
3M	    ALL	    0	    0	    i	    Q
3M	    ALL	    0	    -0		 i		 Q
3M	    ALL	    -0		 0		 i		 Q
3M	    ALL	    -0		 -0		  i		  Q
3M	    ALL	    1	    0	    i	    Q
3M	    ALL	    1d1	  0		  i		  Q
3M	    ALL	    Hd1	 0		 i		 Q
3M	    ALL	    Hd1	 -0		  i		  Q
3M	    ALL	    -Hd1  0		  i		  Q
3M	    ALL	    -Hd1  -0	   i	   Q
3M	    ALL	    Ed1	 0		 i		 Q
3M	    ALL	    Ed1	 -0		  i		  Q
3M	    ALL	    -Ed1  0		  i		  Q
3M	    ALL	    -Ed1  -0	   i	   Q
3M	    ALL	    0i1	  0		  i		  Q
3M	    ALL	    H	   0	   i	   Q
3M	    ALL	    H	   -0	    i	    Q
3M	    ALL	    -H	    0	    i	    Q
3M	    ALL	    -H	    -0		 i		 Q
3M	    ALL	    H	   1	   i	   Q
3M	    ALL	    H	   Hd1  i	    Q
3M	    ALL	    H	   -Hd1	 i		 Q
3M	    ALL	    -H	    Hd1	 i		 Q
3M	    ALL	    -H	    -Hd1  i		  Q
3M	    ALL	    H	   Ed1  i	    Q
3M	    ALL	    H	   0i1	 i		 Q
3M	    ALL	    H	   H	  i		  Q
! 0 rem y = 0,  y a number <> 0.
3M	    ALL	    0	    1	    OK	    0
3M	    ALL	    0	    -1		 OK		 0
3M	    ALL	    -0		 1		 OK		 -0
3M	    ALL	    -0		 -1		  OK	 -0
3M	    ALL	    0	    1d1	  OK	  0
3M	    ALL	    0	    Hd1	 OK		 0
3M	    ALL	    0	    Ed1	 OK		 0
3M	    ALL	    0	    0i1	  OK	  0
3M	    ALL	    0	    -0i1   OK	   0
3M	    ALL	    -0		 0i1   OK	   -0
3M	    ALL	    -0		 -0i1   OK	    -0
3M	    ALL	    0	    H	   OK	   0
3M	    ALL	    0	    -H	    OK	    0
! x rem INF = x,  x a number <> 0.
3M	    ALL	    1	    H	   OK	   1
3M	    ALL	    1	    -H	    OK	    1
3M	    ALL	    -1		 H	    OK	    -1
3M	    ALL	    -1		 -H		 OK		 -1
3M	    ALL	    1d1	  H		 OK		 1d1
3M	    ALL	    Hd1	 H	    OK	    Hd1
3M	    ALL	    Hd1	 -H		 OK		 Hd1
3M	    ALL	    -Hd1  H		 OK		 -Hd1
3M	    ALL	    -Hd1  -H	  OK	  -Hd1
3M	    ALL	    Ed1	 H	    OK		 Ed1
3M	    ALL	    0i1	  H		 OK		  0i1
3M	    ALL	    0i1	  -H	  OK	   0i1
3M	    ALL	    -0i1   H	  OK	   -0i1
3M	    ALL	    -0i1   -H	   OK	    -0i1
! Vectors based on  (x + 1) | (x^n + 1) for n odd -
! for significands with even numbers of bits.
3M	    s	  Hm1i1	 Hm1u3  OK	    0
3M	    s	  Hm1i2	 Hm1u3  OK	    Hm1u1
3M	    s	  Hm1i3	 Hm1u3  OK	    Hm1u2
3M	    s	  Hm1i1	 3		 OK		 0
3M	    s	  Hm1i1	 0i3   OK	   0
3M	    s	  Hm1	   Hm1u3  OK	Hm1u2
3M	    s	  Hm1d2	 Hm1u3  OK	    Hm1u1
3M	    s	  Ei1  Eu3  OK	    0
3M	    s	  E		 Eu3  OK	  0i2
3M	    s	  Ed1  Eu3  OK		 0i1
3M	    s	  Ei1  0i3  OK	    0
3M	    s	  Ei2  Eu3  OK		 Eu1
3M	    s	  Ei3  Eu3  OK		 Eu2
3M	    s	  Hm1i1	 -Hm1u3	 OK		 0
3M	    s	  Hm1i2	 -Hm1u3	 OK		 Hm1u1
3M	    s	  Hm1i3	 -Hm1u3	 OK		 Hm1u2
3M	    s	  Hm1i1	 -3		  OK	  0
3M	    s	  Hm1i1	 -0i3   OK	    0
3M	    s	  Hm1	   -Hm1u3  OK	 Hm1u2
3M	    s	  Hm1d2	 -Hm1u3	 OK		 Hm1u1
3M	    s	  Ei1  -0i3	  OK	  0
3M	    s	  E		 -Eu3  OK	    Eu2
3M	    s	  Ed1  -Eu3	 OK		  Eu1
3M	    s	  Ei1  -Eu3 OK	    0
3M	    s	  Ei2  -Eu3	 OK		  Eu1
3M	    s	  Ei3  -Eu3	 OK		  Eu2
3M	    s	  -Hm1i1  Hm1u3	 OK		 -0
3M	    s	  -Hm1i2  Hm1u3	 OK		 -Hm1u1
3M	    s	  -Hm1i3  Hm1u3	 OK		 -Hm1u2
3M	    s	  -Hm1i1  3		  OK	  -0
3M	    s	  -Hm1i1  0i3   OK	    -0
3M	    s	  -Hm1	    Hm1u3  OK	   -Hm1u2
3M	    s	  -Hm1d2  Hm1u3	 OK		 -Hm1u1
3M	    s	  -Ei1  0i3	  OK	  -0
3M	    s	  -E	  Eu3  OK	    -Eu2
3M	    s	  -Ed1  Eu3	 OK		  -Eu1
3M	    s	  -Ei1  Eu3	 OK		 -0
3M	    s	  -Ei2  Eu3	 OK		  -Eu1
3M	    s	  -Ei3  Eu3	 OK		  -Eu2
3M	    s	  -Hm1i1  -Hm1u3  OK	  -0
3M	    s	  -Hm1i2  -Hm1u3  OK	  -Hm1u1
3M	    s	  -Hm1i3  -Hm1u3  OK	  -Hm1u2
3M	    s	  -Hm1i1  -3	   OK	   -0
3M	    s	  -Hm1i1  -0i3	 OK		 -0
3M	    s	  -Hm1	    -Hm1u3  OK	    -Hm1u2
3M	    s	  -Hm1d2  -Hm1u3  OK	  -Hm1u1
3M	    s	  -Ei1  -0i3   OK	   -0
3M	    s	  -E	  -Eu3  OK		 -Eu2
3M	    s	  -Ed1  -Eu3  OK	   -Eu1
3M	    s	  -Ei1  -Eu3 OK		 -0
3M	    s	  -Ei2  -Eu3  OK	   -Eu1
3M	    s	  -Ei3  -Eu3  OK	   -Eu2
! Vectors based on  (x + 1) | (x^n + 1) for n odd;
! for significands with odd numbers of bits.
3M	    d	  Hm1d2	 Hm1u3  OK	    0
3M	    d	  Hm1i3	 Hm1u3  OK	    Hm1u1
3M	    d	  Hm1i4	 Hm1u3  OK	    Hm1u2
3M	    d	  Hm1i2	 3		 OK		 0
3M	    d	  Hm1i2	 0i3   OK	   0
3M	    d	  Hm1d4	 Hm1u3  OK	    Hm1u2
3M	    d	  Hm1	   Hm1u3  OK	  Hm1u1
3M	    d	  Ed1  Eu3  OK	    0
3M	    d	  Ei1  Eu3  OK		 0i2
3M	    d	  E		 Eu3  OK	   0i1
3M	    d	  Ei2  0i3  OK	    0
3M	    d	  Ei3  Eu3  OK		 Eu1
3M	    d	  Ei4  Eu3  OK		 Eu2
3M	    d	  Hm1d2	 -Hm1u3	 OK		 0
3M	    d	  Hm1i3	 -Hm1u3	 OK		 Hm1u1
3M	    d	  Hm1i4	 -Hm1u3	 OK		 Hm1u2
3M	    d	  Hm1i2	 -3		  OK	  0
3M	    d	  Hm1i2	 -0i3   OK	    0
3M	    d	  Hm1d4	 -Hm1u3	 OK		 Hm1u2
3M	    d	  Hm1	   -Hm1u3  OK	   Hm1u1
3M	    d	  Ed1  -0i3	  OK	  0
3M	    d	  Ei1  -Eu3	 OK		  Eu2
3M	    d	  E		 -Eu3  OK	    Eu1
3M	    d	  Ei2  -Eu3 OK	    	0
3M	    d	  Ei3  -Eu3	 OK		  Eu1
3M	    d	  Ei4  -Eu3	 OK		  Eu2
3M	    d	  -Hm1d2  Hm1u3	 OK		 -0
3M	    d	  -Hm1i3  Hm1u3	 OK		 -Hm1u1
3M	    d	  -Hm1i4  Hm1u3	 OK		 -Hm1u2
3M	    d	  -Hm1i2  3		  OK	  -0
3M	    d	  -Hm1i2  0i3   OK	    -0
3M	    d	  -Hm1d4  Hm1u3	 OK		 -Hm1u2
3M	    d	  -Hm1	    Hm1u3  OK	   -Hm1u1
3M	    d	  -Ed1  0i3	  OK	  -0
3M	    d	  -Ei1  Eu3	 OK		  -Eu2
3M	    d	  -E	  Eu3  OK	    -Eu1
3M	    d	  -Ei2  Eu3	 OK		 -0
3M	    d	  -Ei3  Eu3	 OK		  -Eu1
3M	    d	  -Ei4  Eu3	 OK		  -Eu2
3M	    d	  -Hm1d2  -Hm1u3  OK	  -0
3M	    d	  -Hm1i3  -Hm1u3  OK	  -Hm1u1
3M	    d	  -Hm1i4  -Hm1u3  OK	  -Hm1u2
3M	    d	  -Hm1i2  -3	   OK	   -0
3M	    d	  -Hm1i2  -0i3	 OK		 -0
3M	    d	  -Hm1d4  -Hm1u3  OK	  -Hm1u2
3M	    d	  -Hm1	    -Hm1u3  OK	    -Hm1u1
3M	    d	  -Ei2  -0i3   OK	   -0
3M	    d	  -Ei1  -Eu3  OK	   -Eu2
3M	    d	  -E	  -Eu3  OK		 -Eu1
3M	    d	  -Ei2  -Eu3 OK		 -0
3M	    d	  -Ei3  -Eu3  OK	   -Eu1
3M	    d	  -Ei4  -Eu3  OK	   -Eu2
! NaN operands.  Signaling NaN cases commented out <JPO, 4/30/93>.
3M	    ALL	    Q	    0	    OK	    Q
3M	    ALL	    Q	    -0	    OK	    Q
3M	    ALL	    0	    Q	    OK	    Q
3M	    ALL	    -0	    Q	    OK	    Q
3M	    ALL	    Q	    1	    OK	    Q
3M	    ALL	    Q	    -1	    OK	    Q
3M	    ALL	    1	    Q	    OK	    Q
3M	    ALL	    -1	    Q	    OK	    Q
3M	    ALL	    Ed1	 Q		 OK		 Q
3M	    ALL	    -Ed1 Q		 OK		 Q
3M	    ALL	    Q	    Ed1	 OK		 Q
3M	    ALL	    Q	    -Ed1 OK		 Q
3M	    ALL	    Q	    0i1	  OK	  Q
3M	    ALL	    Q	    -0i1  OK	  Q
3M	    ALL	    0i1	  Q		  OK	  Q
3M	    ALL	    -0i1  Q		  OK	  Q
3M	    ALL	    Q	    Hd1	 OK		 Q
3M	    ALL	    Q	    -Hd1 OK		 Q
3M	    ALL	    Hd1	 Q		 OK		 Q
3M	    ALL	    -Hd1 Q		 OK		 Q
3M	    ALL	    Q	    H	   OK	   Q
3M	    ALL	    Q	    -H	   OK	   Q
3M	    ALL	    H	   Q	   OK	   Q
3M	    ALL	    -H	   Q	   OK	   Q
3M	    ALL	    Q	    Q	    OK	    Q
!3M	    ALL	    S	    0	    i	    Q
!3M	    ALL	    S	    -0	    i	    Q
!3M	    ALL	    0	    S	    i	    Q
!3M	    ALL	    -0	    S	    i	    Q
!3M	    ALL	    S	    1	    i	    Q
!3M	    ALL	    S	    -1	    i	    Q
!3M	    ALL	    1	    S	    i	    Q
!3M	    ALL	    -1	    S	    i	    Q
!3M	    ALL	    Ed1	 S		 i		 Q
!3M	    ALL	    -Ed1 S		 i		 Q
!3M	    ALL	    S	    Ed1	 i		 Q
!3M	    ALL	    S	    -Ed1 i		 Q
!3M	    ALL	    S	    0i1	  i		  Q
!3M	    ALL	    S	    -0i1  i		  Q
!3M	    ALL	    0i1	  S		  i		  Q
!3M	    ALL	    -0i1  S		  i		  Q
!3M	    ALL	    S	    Hd1	 i		 Q
!3M	    ALL	    S	    -Hd1 i		 Q
!3M	    ALL	    Hd1	 S		 i		 Q
!3M	    ALL	    -Hd1 S		 i		 Q
!3M	    ALL	    S	    H	   i	   Q
!3M	    ALL	    S	    -H	   i	   Q
!3M	    ALL	    H	   S	   i	   Q
!3M	    ALL	    -H	   S	   i	   Q
!3M	    ALL	    Q	    S	    i	    Q
!3M	    ALL	    S	    Q	    i	    Q
!3M	    ALL	    S	    S	    i	    Q
