1*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=hexagon -mcpu=hexagonv5 < %s | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker; Optimize fneg to togglebit in V5. 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Workerdefine float @foo(float %x) nounwind { 5*9880d681SAndroid Build Coastguard Workerentry: 6*9880d681SAndroid Build Coastguard Worker; CHECK: r{{[0-9]+}} = togglebit(r{{[0-9]+}}, #31) 7*9880d681SAndroid Build Coastguard Worker %x.addr = alloca float, align 4 8*9880d681SAndroid Build Coastguard Worker store float %x, float* %x.addr, align 4 9*9880d681SAndroid Build Coastguard Worker %0 = load float, float* %x.addr, align 4 10*9880d681SAndroid Build Coastguard Worker %sub = fsub float -0.000000e+00, %0 11*9880d681SAndroid Build Coastguard Worker ret float %sub 12*9880d681SAndroid Build Coastguard Worker} 13*9880d681SAndroid Build Coastguard Worker 14*9880d681SAndroid Build Coastguard Workerdefine float @bar(float %x) nounwind { 15*9880d681SAndroid Build Coastguard Workerentry: 16*9880d681SAndroid Build Coastguard Worker; CHECK: r{{[0-9]+}} = togglebit(r{{[0-9]+}}, #31) 17*9880d681SAndroid Build Coastguard Worker %sub = fsub float -0.000000e+00, %x 18*9880d681SAndroid Build Coastguard Worker ret float %sub 19*9880d681SAndroid Build Coastguard Worker} 20*9880d681SAndroid Build Coastguard Worker 21*9880d681SAndroid Build Coastguard Workerdefine float @baz(float %x) nounwind { 22*9880d681SAndroid Build Coastguard Workerentry: 23*9880d681SAndroid Build Coastguard Worker; CHECK: r{{[0-9]+}} = togglebit(r{{[0-9]+}}, #31) 24*9880d681SAndroid Build Coastguard Worker %conv1 = fmul float %x, -1.000000e+00 25*9880d681SAndroid Build Coastguard Worker ret float %conv1 26*9880d681SAndroid Build Coastguard Worker} 27