brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.6 KiB · e4de8a9 Raw
62 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=arm-eabi -float-abi=soft  -verify-machineinstrs < %s \3; RUN:   | FileCheck --check-prefixes=ARM %s4; RUN: llc -mtriple=arm-eabi -float-abi=soft  -verify-machineinstrs < %s \5; RUN:   | FileCheck --check-prefixes=NOLIB %s6 7; Check Y = FNEG(X) -> Y = X ^ sign mask and no lib call is generated.8define void @test1(ptr %a, ptr %b) {9; ARM-LABEL: test1:10; ARM:       @ %bb.0: @ %entry11; ARM-NEXT:    ldr r1, [r1]12; ARM-NEXT:    eor r1, r1, #-214748364813; ARM-NEXT:    str r1, [r0]14; ARM-NEXT:    mov pc, lr15; NOLIB-LABEL:  test1:16; NOLIB:       eor17; NOLIB-NOT:   bl __aeabi_fsub18entry:19  %0 = load float, ptr %b20  %neg = fneg float %021  store float %neg, ptr %a22  ret void23}24 25define void @test2(ptr %a, ptr %b) {26; ARM-LABEL: test2:27; ARM:       @ %bb.0: @ %entry28; ARM-NEXT:    ldr r2, [r1]29; ARM-NEXT:    ldr r1, [r1, #4]30; ARM-NEXT:    str r2, [r0]31; ARM-NEXT:    eor r1, r1, #-214748364832; ARM-NEXT:    str r1, [r0, #4]33; ARM-NEXT:    mov pc, lr34; NOLIB-LABEL:  test2:35; NOLIB:       eor36; NOLIB-NOT:   bl __aeabi_dsub37entry:38  %0 = load double, ptr %b39  %neg = fneg double %040  store double %neg, ptr %a41  ret void42}43 44define void @test3(ptr %a, ptr %b) {45; ARM-LABEL: test3:46; ARM:       @ %bb.0: @ %entry47; ARM-NEXT:    ldm r1, {r2, r3, r12}48; ARM-NEXT:    ldr r1, [r1, #12]49; ARM-NEXT:    stm r0, {r2, r3, r12}50; ARM-NEXT:    eor r1, r1, #-214748364851; ARM-NEXT:    str r1, [r0, #12]52; ARM-NEXT:    mov pc, lr53; NOLIB-LABEL: test3:54; NOLIB:       eor55; NOLIB-NOT:   bl __subtf356entry:57  %0 = load fp128, ptr %b58  %neg = fneg fp128 %059  store fp128 %neg, ptr %a60  ret void61}62