39 lines · plain
1; RUN: llc -mtriple=hexagon -mcpu=hexagonv5 < %s | FileCheck %s2; Optimize fneg to togglebit in V5.3 4define float @foo(float %x) nounwind {5entry:6; CHECK-LABEL: foo:7; CHECK: r{{[0-9]+}} = togglebit(r{{[0-9]+}},#31)8 %x.addr = alloca float, align 49 store float %x, ptr %x.addr, align 410 %0 = load float, ptr %x.addr, align 411 %sub = fsub float -0.000000e+00, %012 ret float %sub13}14 15define float @bar(float %x) nounwind {16entry:17; CHECK-LABEL: bar:18; CHECK: r{{[0-9]+}} = togglebit(r{{[0-9]+}},#31)19 %sub = fsub float -0.000000e+00, %x20 ret float %sub21}22 23define float @baz0(float %x) nounwind {24entry:25; CHECK-LABEL: baz0:26; CHECK: r{{[0-9]+}} = togglebit(r{{[0-9]+}},#31)27 %conv1 = fmul nnan float %x, -1.000000e+0028 ret float %conv129}30 31define float @baz1(float %x) nounwind {32entry:33 %not.nan = fadd nnan float %x, %x34; CHECK-LABEL: baz1:35; CHECK: r{{[0-9]+}} = togglebit(r{{[0-9]+}},#31)36 %conv1 = fmul float %not.nan, -1.000000e+0037 ret float %conv138}39