brintos

brintos / llvm-project-archived public Read only

0
0
Text · 968 B · 8584545 Raw
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