diff --git a/mach/i86/ncg/table b/mach/i86/ncg/table
index 83d44da6d..44a5eafc1 100644
--- a/mach/i86/ncg/table
+++ b/mach/i86/ncg/table
@@ -1838,6 +1838,9 @@ uses ADDREG={ind_reg2, regvar($1)}
 				yields %a
 					leaving lil $4 adp $3 sil $4
 
+pat lil adp dup sil $1==$4 && $3==2 && inreg($1)==reg_any
+					leaving lil $4 adp $2 sil $4 lil $4
+
 pat lil dup inc sil $1==$4 && $2==2 && inreg($1)==reg_any
 uses REG={ind_reg2, regvar($1)}
 				yields %a
@@ -1855,6 +1858,9 @@ pat lil adp sil $1==$3 && $2==0-1	leaving lil $1 dec sil $1
 
 pat lil adp sil $1==$3	 		leaving loc $2 lil $1 adi 2 sil $3
 
+pat lil adp dup sil lof $1==$4 && $3==2 && $5==(0-$2)
+					leaving lil $4 dup 2 adp $2 sil $4 loi 2
+
 pat lol lof adp lol stf $1==$4 && $2==$5 && $3==1
 	leaving lol $1 lof $2 inc lol $4 stf $5
 pat lol lof adp lol stf $1==$4 && $2==$5 && $3==(0-1)