| ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z16 | FileCheck %s |
| ; |
| ; Check that a multiply-and-add *not* result for half. |
| |
| define half @f1(half %arg, half %A2, half %A3) { |
| ; CHECK-LABEL: f1: |
| ; CHECK: brasl %r14, __extendhfsf2@PLT |
| ; CHECK: brasl %r14, __extendhfsf2@PLT |
| ; CHECK: meebr %f0, %f10 |
| ; CHECK: brasl %r14, __truncsfhf2@PLT |
| ; CHECK: brasl %r14, __extendhfsf2@PLT |
| ; CHECK: brasl %r14, __extendhfsf2@PLT |
| ; CHECK: wfasb %f0, %f9, %f0 |
| ; CHECK: brasl %r14, __truncsfhf2@PLT |
| |
| bb: |
| %i = fmul contract half %arg, %A2 |
| %i4 = fadd contract half %i, %A3 |
| ret half %i4 |
| } |