brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.4 KiB · dcc5ae6 Raw
73 lines · plain
1; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z14 | FileCheck %s2 3declare fp128 @llvm.fma.f128(fp128 %f1, fp128 %f2, fp128 %f3)4 5define void @f1(ptr %ptr1, ptr %ptr2, ptr %ptr3, ptr %dst) {6; CHECK-LABEL: f1:7; CHECK-DAG: vl [[REG1:%v[0-9]+]], 0(%r2)8; CHECK-DAG: vl [[REG2:%v[0-9]+]], 0(%r3)9; CHECK-DAG: vl [[REG3:%v[0-9]+]], 0(%r4)10; CHECK: wfmaxb [[RES:%v[0-9]+]], [[REG1]], [[REG2]], [[REG3]]11; CHECK: vst [[RES]], 0(%r5)12; CHECK: br %r1413  %f1 = load fp128, ptr %ptr114  %f2 = load fp128, ptr %ptr215  %f3 = load fp128, ptr %ptr316  %res = call fp128 @llvm.fma.f128 (fp128 %f1, fp128 %f2, fp128 %f3)17  store fp128 %res, ptr %dst18  ret void19}20 21define void @f2(ptr %ptr1, ptr %ptr2, ptr %ptr3, ptr %dst) {22; CHECK-LABEL: f2:23; CHECK-DAG: vl [[REG1:%v[0-9]+]], 0(%r2)24; CHECK-DAG: vl [[REG2:%v[0-9]+]], 0(%r3)25; CHECK-DAG: vl [[REG3:%v[0-9]+]], 0(%r4)26; CHECK: wfmsxb [[RES:%v[0-9]+]], [[REG1]], [[REG2]], [[REG3]]27; CHECK: vst [[RES]], 0(%r5)28; CHECK: br %r1429  %f1 = load fp128, ptr %ptr130  %f2 = load fp128, ptr %ptr231  %f3 = load fp128, ptr %ptr332  %neg = fsub fp128 0xL00000000000000008000000000000000, %f333  %res = call fp128 @llvm.fma.f128 (fp128 %f1, fp128 %f2, fp128 %neg)34  store fp128 %res, ptr %dst35  ret void36}37 38define void @f3(ptr %ptr1, ptr %ptr2, ptr %ptr3, ptr %dst) {39; CHECK-LABEL: f3:40; CHECK-DAG: vl [[REG1:%v[0-9]+]], 0(%r2)41; CHECK-DAG: vl [[REG2:%v[0-9]+]], 0(%r3)42; CHECK-DAG: vl [[REG3:%v[0-9]+]], 0(%r4)43; CHECK: wfnmaxb [[RES:%v[0-9]+]], [[REG1]], [[REG2]], [[REG3]]44; CHECK: vst [[RES]], 0(%r5)45; CHECK: br %r1446  %f1 = load fp128, ptr %ptr147  %f2 = load fp128, ptr %ptr248  %f3 = load fp128, ptr %ptr349  %res = call fp128 @llvm.fma.f128 (fp128 %f1, fp128 %f2, fp128 %f3)50  %negres = fsub fp128 0xL00000000000000008000000000000000, %res51  store fp128 %negres, ptr %dst52  ret void53}54 55define void @f4(ptr %ptr1, ptr %ptr2, ptr %ptr3, ptr %dst) {56; CHECK-LABEL: f4:57; CHECK-DAG: vl [[REG1:%v[0-9]+]], 0(%r2)58; CHECK-DAG: vl [[REG2:%v[0-9]+]], 0(%r3)59; CHECK-DAG: vl [[REG3:%v[0-9]+]], 0(%r4)60; CHECK: wfnmsxb [[RES:%v[0-9]+]], [[REG1]], [[REG2]], [[REG3]]61; CHECK: vst [[RES]], 0(%r5)62; CHECK: br %r1463  %f1 = load fp128, ptr %ptr164  %f2 = load fp128, ptr %ptr265  %f3 = load fp128, ptr %ptr366  %neg = fsub fp128 0xL00000000000000008000000000000000, %f367  %res = call fp128 @llvm.fma.f128 (fp128 %f1, fp128 %f2, fp128 %neg)68  %negres = fsub fp128 0xL00000000000000008000000000000000, %res69  store fp128 %negres, ptr %dst70  ret void71}72 73