xref: /aosp_15_r20/external/llvm/test/CodeGen/X86/neg_fp.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
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