| ; 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 | |
| } |