1; Test strict 128-bit square root. 2; 3; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s 4 5declare fp128 @llvm.experimental.constrained.sqrt.f128(fp128, metadata, metadata) 6 7; There's no memory form of SQXBR. 8define void @f1(fp128 *%ptr) strictfp { 9; CHECK-LABEL: f1: 10; CHECK: ld %f0, 0(%r2) 11; CHECK: ld %f2, 8(%r2) 12; CHECK: sqxbr %f0, %f0 13; CHECK: std %f0, 0(%r2) 14; CHECK: std %f2, 8(%r2) 15; CHECK: br %r14 16 %orig = load fp128, fp128 *%ptr 17 %sqrt = call fp128 @llvm.experimental.constrained.sqrt.f128( 18 fp128 %orig, 19 metadata !"round.dynamic", 20 metadata !"fpexcept.strict") strictfp 21 store fp128 %sqrt, fp128 *%ptr 22 ret void 23} 24