"icmp eq", "icmp ne" not commuting operands on ARM

NE and EQ comparisons should be able to commute their operands. But, for ARM at least, this does not seem to be happening. The first sequence below generates CMN (compare negated) but the second does not (complete test attached). These seem to map to ARMcmpNZ. Where would I look to see if that is marked commutative?

     %nb = sub i32 0, %b
     %tmp = icmp ne i32 %a, %nb

     %nb = sub i32 0, %b
     %tmp = icmp ne i32 %nb, %a

David

thumb2-cmn.ll (526 Bytes)

David and I talked off line. He's going to fix it.

Evan