Fix two subtle runtime optimization errors involving mixed float/int math: "a=b;b=a" can't elide the 2nd instruction if a is an int and b is a float, and "a=b;c=a" can't transform to "a=b;c=b" if a is an int and b & c are float; in both cases, doing so would ignore the truncation that is (presumably) intended.
Fix two subtle runtime optimization errors involving mixed float/int math:
"a=b;b=a" can't elide the 2nd instruction if a is an int and b is a
float, and "a=b;c=a" can't transform to "a=b;c=b" if a is an int and b &
c are float; in both cases, doing so would ignore the truncation that is
(presumably) intended.

http://codereview.appspot.com/4070041/
Review by: ckulla

h3rb/openshadinglanguage,tectronics/openshadinglanguage,h3rb/openshadinglanguage,h3rb/openshadinglanguage,qdtk/openshadinglanguage,qdtk/openshadinglanguage,qdtk/openshadinglanguage,tectronics/openshadinglanguage,tectronics/openshadinglanguage,tectronics/openshadinglanguage,h3rb/openshadinglanguage,qdtk/openshadinglanguage