1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -march=x86 -mattr=+sse4.1 -o %t 2*9880d681SAndroid Build Coastguard Worker; RUN: grep xorps %t | count 1 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Worker; Test that when we don't -enable-unsafe-fp-math, we don't do the optimization 5*9880d681SAndroid Build Coastguard Worker; -0 - (A - B) to (B - A) because A==B, -0 != 0 6*9880d681SAndroid Build Coastguard Worker 7*9880d681SAndroid Build Coastguard Workerdefine float @negfp(float %a, float %b) { 8*9880d681SAndroid Build Coastguard Workerentry: 9*9880d681SAndroid Build Coastguard Worker %sub = fsub float %a, %b ; <float> [#uses=1] 10*9880d681SAndroid Build Coastguard Worker %neg = fsub float -0.000000e+00, %sub ; <float> [#uses=1] 11*9880d681SAndroid Build Coastguard Worker ret float %neg 12*9880d681SAndroid Build Coastguard Worker} 13