# Instructions
-## Average-Add
+## Average Add
-## Absolute-Difference
+X-Form
-## Absolute-Accumulate
+* avgadd RT,RA,RB (Rc=0)
+* avgadd. RT,RA,RB (Rc=1)
+Pseudo-code:
+
+ a <- [0] * (XLEN+1)
+ b <- [0] * (XLEN+1)
+ a[1:XLEN] <- (RA)
+ b[1:XLEN] <- (RB)
+ r <- (a + b + 1)
+ RT <- r[0:XLEN-1]
+
+Special Registers Altered:
+
+ CR0 (if Rc=1)
+
+## Absolute Signed Difference
+
+X-Form
+
+* absds RT,RA,RB (Rc=0)
+* absds. RT,RA,RB (Rc=1)
+
+Pseudo-code:
+
+ if (RA) < (RB) then RT <- ¬(RA) + (RB) + 1
+ else RT <- ¬(RB) + (RA) + 1
+
+Special Registers Altered:
+
+ CR0 (if Rc=1)
+
+## Absolute Unsigned Difference
+
+X-Form
+
+* absdu RT,RA,RB (Rc=0)
+* absdu. RT,RA,RB (Rc=1)
+
+Pseudo-code:
+
+ if (RA) <u (RB) then RT <- ¬(RA) + (RB) + 1
+ else RT <- ¬(RB) + (RA) + 1
+
+Special Registers Altered:
+
+ CR0 (if Rc=1)
+
+## Absolute Accumulate Unsigned Difference
+
+X-Form
+
+* absdacu RT,RA,RB (Rc=0)
+* absdacu. RT,RA,RB (Rc=1)
+
+Pseudo-code:
+
+ if (RA) <u (RB) then r <- ¬(RA) + (RB) + 1
+ else r <- ¬(RB) + (RA) + 1
+ RT <- (RT) + r
+
+Special Registers Altered:
+
+ CR0 (if Rc=1)
+
+## Absolute Accumulate Signed Difference
+
+X-Form
+
+* absdacs RT,RA,RB (Rc=0)
+* absdacs. RT,RA,RB (Rc=1)
+
+Pseudo-code:
+
+ if (RA) < (RB) then r <- ¬(RA) + (RB) + 1
+ else r <- ¬(RB) + (RA) + 1
+ RT <- (RT) + r
+
+Special Registers Altered:
+
+ CR0 (if Rc=1)