| ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py |
| ; RUN: llc -march=hexagon < %s | FileCheck %s |
| |
| define half @freeze_half_undef() nounwind { |
| ; CHECK-LABEL: freeze_half_undef: |
| ; CHECK: // %bb.0: |
| ; CHECK-NEXT: { |
| ; CHECK-NEXT: call __truncsfhf2 |
| ; CHECK-NEXT: r0 = #0 |
| ; CHECK-NEXT: allocframe(#0) |
| ; CHECK-NEXT: } |
| ; CHECK-NEXT: { |
| ; CHECK-NEXT: call __extendhfsf2 |
| ; CHECK-NEXT: } |
| ; CHECK-NEXT: { |
| ; CHECK-NEXT: call __truncsfhf2 |
| ; CHECK-NEXT: r0 = sfadd(r0,r0) |
| ; CHECK-NEXT: } |
| ; CHECK-NEXT: { |
| ; CHECK-NEXT: r31:30 = dealloc_return(r30):raw |
| ; CHECK-NEXT: } |
| %y1 = freeze half undef |
| %t1 = fadd half %y1, %y1 |
| ret half %t1 |
| } |
| |
| define half @freeze_half_poison(half %maybe.poison) { |
| ; CHECK-LABEL: freeze_half_poison: |
| ; CHECK: // %bb.0: |
| ; CHECK: { |
| ; CHECK-NEXT: call __extendhfsf2 |
| ; CHECK-NEXT: allocframe(r29,#0):raw |
| ; CHECK-NEXT: } |
| ; CHECK-NEXT: { |
| ; CHECK-NEXT: call __truncsfhf2 |
| ; CHECK-NEXT: r0 = sfadd(r0,r0) |
| ; CHECK-NEXT: } |
| ; CHECK-NEXT: { |
| ; CHECK-NEXT: r31:30 = dealloc_return(r30):raw |
| ; CHECK-NEXT: } |
| %y1 = freeze half %maybe.poison |
| %t1 = fadd half %y1, %y1 |
| ret half %t1 |
| } |