| PO | FRT | FRA | FRB | FMM | XO | Rc |
```
+```
+ result <- [0] * 64
+ a <- (FRA)
+ b <- (FRB)
+ abs_a <- 0b0 || a[1:63]
+ abs_b <- 0b0 || b[1:63]
+ a_is_nan <- abs_a >u 0x7FF0_0000_0000_0000
+ a_is_snan <- a_is_nan and a[12] = 0
+ b_is_nan <- abs_b >u 0x7FF0_0000_0000_0000
+ b_is_snan <- b_is_nan and b[12] = 0
+ any_snan <- a_is_snan or b_is_snan
+ a_quieted <- a
+ a_quieted[12] = 1
+ b_quieted <- b
+ b_quieted[12] = 1
+ if a_is_nan or b_is_nan then
+ if FMM[2:3] = 0b00 then # min/maxnum08
+ if a_is_snan then result <- a_quieted
+ else if b_is_snan then result <- b_quieted
+ else if a_is_nan and b_is_nan then result <- a_quieted
+ else if a_is_nan then result <- b
+ else result <- a
+ if FMM[2:3] = 0b01 then # min/max19
+ if a_is_nan then result <- a_quieted
+ else result <- b_quieted
+ if FMM[2:3] = 0b10 then # min/maxnum19
+ if a_is_nan and b_is_nan then result <- a_quieted
+ else if a_is_nan then result <- b
+ else result <- a
+ if FMM[2:3] = 0b11 then # min/maxc
+ result <- b
+ else
+ cmp_l <- a
+ cmp_r <- b
+ if FMM[1] then # min/maxmag
+ if abs_a != abs_b then
+ cmp_l <- abs_a
+ cmp_r <- abs_b
+ if FMM[2:3] = 0b11 then # min/maxc
+ if abs_a = 0 then cmp_l <- 0
+ if abs_b = 0 then cmp_r <- 0
+ if FMM[0] then # max
+ # swap cmp_* so comparison goes the other way
+ cmp_l, cmp_r <- cmp_r, cmp_l
+ if cmp_l[0] = 1 then
+ if cmp_r[0] = 0 then result <- a
+ else if cmp_l >u cmp_r then
+ # IEEE 754 is sign-magnitude,
+ # so bigger magnitude negative is smaller
+ result <- a
+ else result <- b
+ else if cmp_r[0] = 1 then result <- b
+ else if cmp_l <u cmp_r then result <- a
+ else result <- b
+ if any_snan then SetFX(FPSCR.VXSNAN)
+ if FPSCR.VE = 0 and ¬any_snan then (FRT) <- result
+```
+
Compute the minimum/maximum of FRA and FRB, according to FMM, and store the
result in FRT.