Changeset View
Changeset View
Standalone View
Standalone View
llvm/trunk/test/CodeGen/SystemZ/vector-constrained-fp-intrinsics.ll
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py | ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py | ||||
; RUN: llc -O3 -mtriple=s390x-linux-gnu < %s | FileCheck --check-prefix=S390X %s | ; RUN: llc -O3 -mtriple=s390x-linux-gnu < %s | FileCheck --check-prefix=S390X %s | ||||
; RUN: llc -O3 -mtriple=s390x-linux-gnu -mcpu=z13 < %s | FileCheck --check-prefix=SZ13 %s | ; RUN: llc -O3 -mtriple=s390x-linux-gnu -mcpu=z13 < %s | FileCheck --check-prefix=SZ13 %s | ||||
define <1 x float> @constrained_vector_fdiv_v1f32() { | define <1 x float> @constrained_vector_fdiv_v1f32() #0 { | ||||
; S390X-LABEL: constrained_vector_fdiv_v1f32: | ; S390X-LABEL: constrained_vector_fdiv_v1f32: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: larl %r1, .LCPI0_0 | ; S390X-NEXT: larl %r1, .LCPI0_0 | ||||
; S390X-NEXT: le %f0, 0(%r1) | ; S390X-NEXT: le %f0, 0(%r1) | ||||
; S390X-NEXT: larl %r1, .LCPI0_1 | ; S390X-NEXT: larl %r1, .LCPI0_1 | ||||
; S390X-NEXT: deb %f0, 0(%r1) | ; S390X-NEXT: deb %f0, 0(%r1) | ||||
; S390X-NEXT: br %r14 | ; S390X-NEXT: br %r14 | ||||
; | ; | ||||
; SZ13-LABEL: constrained_vector_fdiv_v1f32: | ; SZ13-LABEL: constrained_vector_fdiv_v1f32: | ||||
; SZ13: # %bb.0: # %entry | ; SZ13: # %bb.0: # %entry | ||||
; SZ13-NEXT: larl %r1, .LCPI0_0 | ; SZ13-NEXT: larl %r1, .LCPI0_0 | ||||
; SZ13-NEXT: vgmf %v0, 2, 8 | ; SZ13-NEXT: vgmf %v0, 2, 8 | ||||
; SZ13-NEXT: deb %f0, 0(%r1) | ; SZ13-NEXT: deb %f0, 0(%r1) | ||||
; SZ13-NEXT: vlr %v24, %v0 | ; SZ13-NEXT: vlr %v24, %v0 | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%div = call <1 x float> @llvm.experimental.constrained.fdiv.v1f32( | %div = call <1 x float> @llvm.experimental.constrained.fdiv.v1f32( | ||||
<1 x float> <float 1.000000e+00>, | <1 x float> <float 1.000000e+00>, | ||||
<1 x float> <float 1.000000e+01>, | <1 x float> <float 1.000000e+01>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <1 x float> %div | ret <1 x float> %div | ||||
} | } | ||||
define <2 x double> @constrained_vector_fdiv_v2f64() { | define <2 x double> @constrained_vector_fdiv_v2f64() #0 { | ||||
; S390X-LABEL: constrained_vector_fdiv_v2f64: | ; S390X-LABEL: constrained_vector_fdiv_v2f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: larl %r1, .LCPI1_0 | ; S390X-NEXT: larl %r1, .LCPI1_0 | ||||
; S390X-NEXT: ldeb %f1, 0(%r1) | ; S390X-NEXT: ldeb %f1, 0(%r1) | ||||
; S390X-NEXT: larl %r1, .LCPI1_1 | ; S390X-NEXT: larl %r1, .LCPI1_1 | ||||
; S390X-NEXT: ldeb %f2, 0(%r1) | ; S390X-NEXT: ldeb %f2, 0(%r1) | ||||
; S390X-NEXT: larl %r1, .LCPI1_2 | ; S390X-NEXT: larl %r1, .LCPI1_2 | ||||
; S390X-NEXT: ldeb %f0, 0(%r1) | ; S390X-NEXT: ldeb %f0, 0(%r1) | ||||
Show All 9 Lines | |||||
; SZ13-NEXT: vl %v1, 0(%r1), 3 | ; SZ13-NEXT: vl %v1, 0(%r1), 3 | ||||
; SZ13-NEXT: vfddb %v24, %v1, %v0 | ; SZ13-NEXT: vfddb %v24, %v1, %v0 | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%div = call <2 x double> @llvm.experimental.constrained.fdiv.v2f64( | %div = call <2 x double> @llvm.experimental.constrained.fdiv.v2f64( | ||||
<2 x double> <double 1.000000e+00, double 2.000000e+00>, | <2 x double> <double 1.000000e+00, double 2.000000e+00>, | ||||
<2 x double> <double 1.000000e+01, double 1.000000e+01>, | <2 x double> <double 1.000000e+01, double 1.000000e+01>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <2 x double> %div | ret <2 x double> %div | ||||
} | } | ||||
define <3 x float> @constrained_vector_fdiv_v3f32() { | define <3 x float> @constrained_vector_fdiv_v3f32() #0 { | ||||
; S390X-LABEL: constrained_vector_fdiv_v3f32: | ; S390X-LABEL: constrained_vector_fdiv_v3f32: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: larl %r1, .LCPI2_0 | ; S390X-NEXT: larl %r1, .LCPI2_0 | ||||
; S390X-NEXT: le %f1, 0(%r1) | ; S390X-NEXT: le %f1, 0(%r1) | ||||
; S390X-NEXT: larl %r1, .LCPI2_1 | ; S390X-NEXT: larl %r1, .LCPI2_1 | ||||
; S390X-NEXT: le %f4, 0(%r1) | ; S390X-NEXT: le %f4, 0(%r1) | ||||
; S390X-NEXT: larl %r1, .LCPI2_2 | ; S390X-NEXT: larl %r1, .LCPI2_2 | ||||
; S390X-NEXT: le %f2, 0(%r1) | ; S390X-NEXT: le %f2, 0(%r1) | ||||
Show All 19 Lines | |||||
; SZ13-NEXT: vmrhf %v0, %v2, %v3 | ; SZ13-NEXT: vmrhf %v0, %v2, %v3 | ||||
; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%div = call <3 x float> @llvm.experimental.constrained.fdiv.v3f32( | %div = call <3 x float> @llvm.experimental.constrained.fdiv.v3f32( | ||||
<3 x float> <float 1.000000e+00, float 2.000000e+00, float 3.000000e+00>, | <3 x float> <float 1.000000e+00, float 2.000000e+00, float 3.000000e+00>, | ||||
<3 x float> <float 1.000000e+01, float 1.000000e+01, float 1.000000e+01>, | <3 x float> <float 1.000000e+01, float 1.000000e+01, float 1.000000e+01>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <3 x float> %div | ret <3 x float> %div | ||||
} | } | ||||
define void @constrained_vector_fdiv_v3f64(<3 x double>* %a) { | define void @constrained_vector_fdiv_v3f64(<3 x double>* %a) #0 { | ||||
; S390X-LABEL: constrained_vector_fdiv_v3f64: | ; S390X-LABEL: constrained_vector_fdiv_v3f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: ld %f0, 16(%r2) | ; S390X-NEXT: ld %f0, 16(%r2) | ||||
; S390X-NEXT: ld %f1, 8(%r2) | ; S390X-NEXT: ld %f1, 8(%r2) | ||||
; S390X-NEXT: larl %r1, .LCPI3_0 | ; S390X-NEXT: larl %r1, .LCPI3_0 | ||||
; S390X-NEXT: ldeb %f2, 0(%r1) | ; S390X-NEXT: ldeb %f2, 0(%r1) | ||||
; S390X-NEXT: larl %r1, .LCPI3_1 | ; S390X-NEXT: larl %r1, .LCPI3_1 | ||||
; S390X-NEXT: ldeb %f3, 0(%r1) | ; S390X-NEXT: ldeb %f3, 0(%r1) | ||||
Show All 20 Lines | |||||
; SZ13-NEXT: vst %v0, 0(%r2), 4 | ; SZ13-NEXT: vst %v0, 0(%r2), 4 | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%b = load <3 x double>, <3 x double>* %a | %b = load <3 x double>, <3 x double>* %a | ||||
%div = call <3 x double> @llvm.experimental.constrained.fdiv.v3f64( | %div = call <3 x double> @llvm.experimental.constrained.fdiv.v3f64( | ||||
<3 x double> <double 1.000000e+00, double 2.000000e+00, double 3.000000e+00>, | <3 x double> <double 1.000000e+00, double 2.000000e+00, double 3.000000e+00>, | ||||
<3 x double> %b, | <3 x double> %b, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
store <3 x double> %div, <3 x double>* %a | store <3 x double> %div, <3 x double>* %a | ||||
ret void | ret void | ||||
} | } | ||||
define <4 x double> @constrained_vector_fdiv_v4f64() { | define <4 x double> @constrained_vector_fdiv_v4f64() #0 { | ||||
; S390X-LABEL: constrained_vector_fdiv_v4f64: | ; S390X-LABEL: constrained_vector_fdiv_v4f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: larl %r1, .LCPI4_0 | ; S390X-NEXT: larl %r1, .LCPI4_0 | ||||
; S390X-NEXT: ldeb %f1, 0(%r1) | ; S390X-NEXT: ldeb %f1, 0(%r1) | ||||
; S390X-NEXT: larl %r1, .LCPI4_1 | ; S390X-NEXT: larl %r1, .LCPI4_1 | ||||
; S390X-NEXT: ldeb %f6, 0(%r1) | ; S390X-NEXT: ldeb %f6, 0(%r1) | ||||
; S390X-NEXT: larl %r1, .LCPI4_2 | ; S390X-NEXT: larl %r1, .LCPI4_2 | ||||
; S390X-NEXT: ldeb %f4, 0(%r1) | ; S390X-NEXT: ldeb %f4, 0(%r1) | ||||
Show All 20 Lines | |||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%div = call <4 x double> @llvm.experimental.constrained.fdiv.v4f64( | %div = call <4 x double> @llvm.experimental.constrained.fdiv.v4f64( | ||||
<4 x double> <double 1.000000e+00, double 2.000000e+00, | <4 x double> <double 1.000000e+00, double 2.000000e+00, | ||||
double 3.000000e+00, double 4.000000e+00>, | double 3.000000e+00, double 4.000000e+00>, | ||||
<4 x double> <double 1.000000e+01, double 1.000000e+01, | <4 x double> <double 1.000000e+01, double 1.000000e+01, | ||||
double 1.000000e+01, double 1.000000e+01>, | double 1.000000e+01, double 1.000000e+01>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <4 x double> %div | ret <4 x double> %div | ||||
} | } | ||||
define <1 x float> @constrained_vector_frem_v1f32() { | define <1 x float> @constrained_vector_frem_v1f32() #0 { | ||||
; S390X-LABEL: constrained_vector_frem_v1f32: | ; S390X-LABEL: constrained_vector_frem_v1f32: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -160 | ; S390X-NEXT: aghi %r15, -160 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 320 | ; S390X-NEXT: .cfi_def_cfa_offset 320 | ||||
; S390X-NEXT: larl %r1, .LCPI5_0 | ; S390X-NEXT: larl %r1, .LCPI5_0 | ||||
Show All 19 Lines | |||||
; SZ13-NEXT: vlr %v24, %v0 | ; SZ13-NEXT: vlr %v24, %v0 | ||||
; SZ13-NEXT: lmg %r14, %r15, 272(%r15) | ; SZ13-NEXT: lmg %r14, %r15, 272(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%rem = call <1 x float> @llvm.experimental.constrained.frem.v1f32( | %rem = call <1 x float> @llvm.experimental.constrained.frem.v1f32( | ||||
<1 x float> <float 1.000000e+00>, | <1 x float> <float 1.000000e+00>, | ||||
<1 x float> <float 1.000000e+01>, | <1 x float> <float 1.000000e+01>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <1 x float> %rem | ret <1 x float> %rem | ||||
} | } | ||||
define <2 x double> @constrained_vector_frem_v2f64() { | define <2 x double> @constrained_vector_frem_v2f64() #0 { | ||||
; S390X-LABEL: constrained_vector_frem_v2f64: | ; S390X-LABEL: constrained_vector_frem_v2f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -176 | ; S390X-NEXT: aghi %r15, -176 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 336 | ; S390X-NEXT: .cfi_def_cfa_offset 336 | ||||
; S390X-NEXT: std %f8, 168(%r15) # 8-byte Folded Spill | ; S390X-NEXT: std %f8, 168(%r15) # 8-byte Folded Spill | ||||
▲ Show 20 Lines • Show All 44 Lines • ▼ Show 20 Lines | |||||
; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ||||
; SZ13-NEXT: lmg %r14, %r15, 296(%r15) | ; SZ13-NEXT: lmg %r14, %r15, 296(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%rem = call <2 x double> @llvm.experimental.constrained.frem.v2f64( | %rem = call <2 x double> @llvm.experimental.constrained.frem.v2f64( | ||||
<2 x double> <double 1.000000e+00, double 2.000000e+00>, | <2 x double> <double 1.000000e+00, double 2.000000e+00>, | ||||
<2 x double> <double 1.000000e+01, double 1.000000e+01>, | <2 x double> <double 1.000000e+01, double 1.000000e+01>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <2 x double> %rem | ret <2 x double> %rem | ||||
} | } | ||||
define <3 x float> @constrained_vector_frem_v3f32() { | define <3 x float> @constrained_vector_frem_v3f32() #0 { | ||||
; S390X-LABEL: constrained_vector_frem_v3f32: | ; S390X-LABEL: constrained_vector_frem_v3f32: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -184 | ; S390X-NEXT: aghi %r15, -184 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 344 | ; S390X-NEXT: .cfi_def_cfa_offset 344 | ||||
; S390X-NEXT: std %f8, 176(%r15) # 8-byte Folded Spill | ; S390X-NEXT: std %f8, 176(%r15) # 8-byte Folded Spill | ||||
▲ Show 20 Lines • Show All 63 Lines • ▼ Show 20 Lines | |||||
; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ||||
; SZ13-NEXT: lmg %r14, %r15, 312(%r15) | ; SZ13-NEXT: lmg %r14, %r15, 312(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%rem = call <3 x float> @llvm.experimental.constrained.frem.v3f32( | %rem = call <3 x float> @llvm.experimental.constrained.frem.v3f32( | ||||
<3 x float> <float 1.000000e+00, float 2.000000e+00, float 3.000000e+00>, | <3 x float> <float 1.000000e+00, float 2.000000e+00, float 3.000000e+00>, | ||||
<3 x float> <float 1.000000e+01, float 1.000000e+01, float 1.000000e+01>, | <3 x float> <float 1.000000e+01, float 1.000000e+01, float 1.000000e+01>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <3 x float> %rem | ret <3 x float> %rem | ||||
} | } | ||||
define void @constrained_vector_frem_v3f64(<3 x double>* %a) { | define void @constrained_vector_frem_v3f64(<3 x double>* %a) #0 { | ||||
; S390X-LABEL: constrained_vector_frem_v3f64: | ; S390X-LABEL: constrained_vector_frem_v3f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r13, %r15, 104(%r15) | ; S390X-NEXT: stmg %r13, %r15, 104(%r15) | ||||
; S390X-NEXT: .cfi_offset %r13, -56 | ; S390X-NEXT: .cfi_offset %r13, -56 | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -184 | ; S390X-NEXT: aghi %r15, -184 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 344 | ; S390X-NEXT: .cfi_def_cfa_offset 344 | ||||
▲ Show 20 Lines • Show All 70 Lines • ▼ Show 20 Lines | |||||
; SZ13-NEXT: lmg %r13, %r15, 304(%r15) | ; SZ13-NEXT: lmg %r13, %r15, 304(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%b = load <3 x double>, <3 x double>* %a | %b = load <3 x double>, <3 x double>* %a | ||||
%rem = call <3 x double> @llvm.experimental.constrained.frem.v3f64( | %rem = call <3 x double> @llvm.experimental.constrained.frem.v3f64( | ||||
<3 x double> <double 1.000000e+00, double 2.000000e+00, double 3.000000e+00>, | <3 x double> <double 1.000000e+00, double 2.000000e+00, double 3.000000e+00>, | ||||
<3 x double> %b, | <3 x double> %b, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
store <3 x double> %rem, <3 x double>* %a | store <3 x double> %rem, <3 x double>* %a | ||||
ret void | ret void | ||||
} | } | ||||
define <4 x double> @constrained_vector_frem_v4f64() { | define <4 x double> @constrained_vector_frem_v4f64() #0 { | ||||
; S390X-LABEL: constrained_vector_frem_v4f64: | ; S390X-LABEL: constrained_vector_frem_v4f64: | ||||
; S390X: # %bb.0: | ; S390X: # %bb.0: | ||||
; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -192 | ; S390X-NEXT: aghi %r15, -192 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 352 | ; S390X-NEXT: .cfi_def_cfa_offset 352 | ||||
; S390X-NEXT: std %f8, 184(%r15) # 8-byte Folded Spill | ; S390X-NEXT: std %f8, 184(%r15) # 8-byte Folded Spill | ||||
▲ Show 20 Lines • Show All 80 Lines • ▼ Show 20 Lines | |||||
; SZ13-NEXT: lmg %r14, %r15, 312(%r15) | ; SZ13-NEXT: lmg %r14, %r15, 312(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
%rem = call <4 x double> @llvm.experimental.constrained.frem.v4f64( | %rem = call <4 x double> @llvm.experimental.constrained.frem.v4f64( | ||||
<4 x double> <double 1.000000e+00, double 2.000000e+00, | <4 x double> <double 1.000000e+00, double 2.000000e+00, | ||||
double 3.000000e+00, double 4.000000e+00>, | double 3.000000e+00, double 4.000000e+00>, | ||||
<4 x double> <double 1.000000e+01, double 1.000000e+01, | <4 x double> <double 1.000000e+01, double 1.000000e+01, | ||||
double 1.000000e+01, double 1.000000e+01>, | double 1.000000e+01, double 1.000000e+01>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <4 x double> %rem | ret <4 x double> %rem | ||||
} | } | ||||
define <1 x float> @constrained_vector_fmul_v1f32() { | define <1 x float> @constrained_vector_fmul_v1f32() #0 { | ||||
; S390X-LABEL: constrained_vector_fmul_v1f32: | ; S390X-LABEL: constrained_vector_fmul_v1f32: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: larl %r1, .LCPI10_0 | ; S390X-NEXT: larl %r1, .LCPI10_0 | ||||
; S390X-NEXT: le %f0, 0(%r1) | ; S390X-NEXT: le %f0, 0(%r1) | ||||
; S390X-NEXT: larl %r1, .LCPI10_1 | ; S390X-NEXT: larl %r1, .LCPI10_1 | ||||
; S390X-NEXT: meeb %f0, 0(%r1) | ; S390X-NEXT: meeb %f0, 0(%r1) | ||||
; S390X-NEXT: br %r14 | ; S390X-NEXT: br %r14 | ||||
; | ; | ||||
; SZ13-LABEL: constrained_vector_fmul_v1f32: | ; SZ13-LABEL: constrained_vector_fmul_v1f32: | ||||
; SZ13: # %bb.0: # %entry | ; SZ13: # %bb.0: # %entry | ||||
; SZ13-NEXT: vgmf %v0, 1, 1 | ; SZ13-NEXT: vgmf %v0, 1, 1 | ||||
; SZ13-NEXT: vgmf %v1, 1, 8 | ; SZ13-NEXT: vgmf %v1, 1, 8 | ||||
; SZ13-NEXT: meebr %f1, %f0 | ; SZ13-NEXT: meebr %f1, %f0 | ||||
; SZ13-NEXT: vlr %v24, %v1 | ; SZ13-NEXT: vlr %v24, %v1 | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%mul = call <1 x float> @llvm.experimental.constrained.fmul.v1f32( | %mul = call <1 x float> @llvm.experimental.constrained.fmul.v1f32( | ||||
<1 x float> <float 0x7FF0000000000000>, | <1 x float> <float 0x7FF0000000000000>, | ||||
<1 x float> <float 2.000000e+00>, | <1 x float> <float 2.000000e+00>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <1 x float> %mul | ret <1 x float> %mul | ||||
} | } | ||||
define <2 x double> @constrained_vector_fmul_v2f64() { | define <2 x double> @constrained_vector_fmul_v2f64() #0 { | ||||
; S390X-LABEL: constrained_vector_fmul_v2f64: | ; S390X-LABEL: constrained_vector_fmul_v2f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: larl %r1, .LCPI11_0 | ; S390X-NEXT: larl %r1, .LCPI11_0 | ||||
; S390X-NEXT: ldeb %f2, 0(%r1) | ; S390X-NEXT: ldeb %f2, 0(%r1) | ||||
; S390X-NEXT: larl %r1, .LCPI11_1 | ; S390X-NEXT: larl %r1, .LCPI11_1 | ||||
; S390X-NEXT: ld %f1, 0(%r1) | ; S390X-NEXT: ld %f1, 0(%r1) | ||||
; S390X-NEXT: larl %r1, .LCPI11_2 | ; S390X-NEXT: larl %r1, .LCPI11_2 | ||||
; S390X-NEXT: ldeb %f0, 0(%r1) | ; S390X-NEXT: ldeb %f0, 0(%r1) | ||||
Show All 9 Lines | |||||
; SZ13-NEXT: vl %v1, 0(%r1), 3 | ; SZ13-NEXT: vl %v1, 0(%r1), 3 | ||||
; SZ13-NEXT: vfmdb %v24, %v1, %v0 | ; SZ13-NEXT: vfmdb %v24, %v1, %v0 | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%mul = call <2 x double> @llvm.experimental.constrained.fmul.v2f64( | %mul = call <2 x double> @llvm.experimental.constrained.fmul.v2f64( | ||||
<2 x double> <double 0x7FEFFFFFFFFFFFFF, double 0x7FEFFFFFFFFFFFFF>, | <2 x double> <double 0x7FEFFFFFFFFFFFFF, double 0x7FEFFFFFFFFFFFFF>, | ||||
<2 x double> <double 2.000000e+00, double 3.000000e+00>, | <2 x double> <double 2.000000e+00, double 3.000000e+00>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <2 x double> %mul | ret <2 x double> %mul | ||||
} | } | ||||
define <3 x float> @constrained_vector_fmul_v3f32() { | define <3 x float> @constrained_vector_fmul_v3f32() #0 { | ||||
; S390X-LABEL: constrained_vector_fmul_v3f32: | ; S390X-LABEL: constrained_vector_fmul_v3f32: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: larl %r1, .LCPI12_0 | ; S390X-NEXT: larl %r1, .LCPI12_0 | ||||
; S390X-NEXT: le %f0, 0(%r1) | ; S390X-NEXT: le %f0, 0(%r1) | ||||
; S390X-NEXT: larl %r1, .LCPI12_1 | ; S390X-NEXT: larl %r1, .LCPI12_1 | ||||
; S390X-NEXT: ler %f4, %f0 | ; S390X-NEXT: ler %f4, %f0 | ||||
; S390X-NEXT: meeb %f4, 0(%r1) | ; S390X-NEXT: meeb %f4, 0(%r1) | ||||
; S390X-NEXT: larl %r1, .LCPI12_2 | ; S390X-NEXT: larl %r1, .LCPI12_2 | ||||
Show All 18 Lines | |||||
; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%mul = call <3 x float> @llvm.experimental.constrained.fmul.v3f32( | %mul = call <3 x float> @llvm.experimental.constrained.fmul.v3f32( | ||||
<3 x float> <float 0x7FF0000000000000, float 0x7FF0000000000000, | <3 x float> <float 0x7FF0000000000000, float 0x7FF0000000000000, | ||||
float 0x7FF0000000000000>, | float 0x7FF0000000000000>, | ||||
<3 x float> <float 1.000000e+00, float 1.000000e+01, float 1.000000e+02>, | <3 x float> <float 1.000000e+00, float 1.000000e+01, float 1.000000e+02>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <3 x float> %mul | ret <3 x float> %mul | ||||
} | } | ||||
define void @constrained_vector_fmul_v3f64(<3 x double>* %a) { | define void @constrained_vector_fmul_v3f64(<3 x double>* %a) #0 { | ||||
; S390X-LABEL: constrained_vector_fmul_v3f64: | ; S390X-LABEL: constrained_vector_fmul_v3f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: ld %f0, 8(%r2) | ; S390X-NEXT: ld %f0, 8(%r2) | ||||
; S390X-NEXT: larl %r1, .LCPI13_0 | ; S390X-NEXT: larl %r1, .LCPI13_0 | ||||
; S390X-NEXT: ld %f1, 0(%r1) | ; S390X-NEXT: ld %f1, 0(%r1) | ||||
; S390X-NEXT: ld %f2, 16(%r2) | ; S390X-NEXT: ld %f2, 16(%r2) | ||||
; S390X-NEXT: mdbr %f0, %f1 | ; S390X-NEXT: mdbr %f0, %f1 | ||||
; S390X-NEXT: ldr %f3, %f1 | ; S390X-NEXT: ldr %f3, %f1 | ||||
Show All 18 Lines | |||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%b = load <3 x double>, <3 x double>* %a | %b = load <3 x double>, <3 x double>* %a | ||||
%mul = call <3 x double> @llvm.experimental.constrained.fmul.v3f64( | %mul = call <3 x double> @llvm.experimental.constrained.fmul.v3f64( | ||||
<3 x double> <double 0x7FEFFFFFFFFFFFFF, double 0x7FEFFFFFFFFFFFFF, | <3 x double> <double 0x7FEFFFFFFFFFFFFF, double 0x7FEFFFFFFFFFFFFF, | ||||
double 0x7FEFFFFFFFFFFFFF>, | double 0x7FEFFFFFFFFFFFFF>, | ||||
<3 x double> %b, | <3 x double> %b, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
store <3 x double> %mul, <3 x double>* %a | store <3 x double> %mul, <3 x double>* %a | ||||
ret void | ret void | ||||
} | } | ||||
define <4 x double> @constrained_vector_fmul_v4f64() { | define <4 x double> @constrained_vector_fmul_v4f64() #0 { | ||||
; S390X-LABEL: constrained_vector_fmul_v4f64: | ; S390X-LABEL: constrained_vector_fmul_v4f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: larl %r1, .LCPI14_0 | ; S390X-NEXT: larl %r1, .LCPI14_0 | ||||
; S390X-NEXT: ldeb %f6, 0(%r1) | ; S390X-NEXT: ldeb %f6, 0(%r1) | ||||
; S390X-NEXT: larl %r1, .LCPI14_1 | ; S390X-NEXT: larl %r1, .LCPI14_1 | ||||
; S390X-NEXT: ld %f1, 0(%r1) | ; S390X-NEXT: ld %f1, 0(%r1) | ||||
; S390X-NEXT: larl %r1, .LCPI14_2 | ; S390X-NEXT: larl %r1, .LCPI14_2 | ||||
; S390X-NEXT: ldeb %f4, 0(%r1) | ; S390X-NEXT: ldeb %f4, 0(%r1) | ||||
Show All 20 Lines | |||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%mul = call <4 x double> @llvm.experimental.constrained.fmul.v4f64( | %mul = call <4 x double> @llvm.experimental.constrained.fmul.v4f64( | ||||
<4 x double> <double 0x7FEFFFFFFFFFFFFF, double 0x7FEFFFFFFFFFFFFF, | <4 x double> <double 0x7FEFFFFFFFFFFFFF, double 0x7FEFFFFFFFFFFFFF, | ||||
double 0x7FEFFFFFFFFFFFFF, double 0x7FEFFFFFFFFFFFFF>, | double 0x7FEFFFFFFFFFFFFF, double 0x7FEFFFFFFFFFFFFF>, | ||||
<4 x double> <double 2.000000e+00, double 3.000000e+00, | <4 x double> <double 2.000000e+00, double 3.000000e+00, | ||||
double 4.000000e+00, double 5.000000e+00>, | double 4.000000e+00, double 5.000000e+00>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <4 x double> %mul | ret <4 x double> %mul | ||||
} | } | ||||
define <1 x float> @constrained_vector_fadd_v1f32() { | define <1 x float> @constrained_vector_fadd_v1f32() #0 { | ||||
; S390X-LABEL: constrained_vector_fadd_v1f32: | ; S390X-LABEL: constrained_vector_fadd_v1f32: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: larl %r1, .LCPI15_0 | ; S390X-NEXT: larl %r1, .LCPI15_0 | ||||
; S390X-NEXT: le %f0, 0(%r1) | ; S390X-NEXT: le %f0, 0(%r1) | ||||
; S390X-NEXT: larl %r1, .LCPI15_1 | ; S390X-NEXT: larl %r1, .LCPI15_1 | ||||
; S390X-NEXT: aeb %f0, 0(%r1) | ; S390X-NEXT: aeb %f0, 0(%r1) | ||||
; S390X-NEXT: br %r14 | ; S390X-NEXT: br %r14 | ||||
; | ; | ||||
; SZ13-LABEL: constrained_vector_fadd_v1f32: | ; SZ13-LABEL: constrained_vector_fadd_v1f32: | ||||
; SZ13: # %bb.0: # %entry | ; SZ13: # %bb.0: # %entry | ||||
; SZ13-NEXT: vgmf %v0, 2, 8 | ; SZ13-NEXT: vgmf %v0, 2, 8 | ||||
; SZ13-NEXT: vgmf %v1, 1, 8 | ; SZ13-NEXT: vgmf %v1, 1, 8 | ||||
; SZ13-NEXT: aebr %f1, %f0 | ; SZ13-NEXT: aebr %f1, %f0 | ||||
; SZ13-NEXT: vlr %v24, %v1 | ; SZ13-NEXT: vlr %v24, %v1 | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%add = call <1 x float> @llvm.experimental.constrained.fadd.v1f32( | %add = call <1 x float> @llvm.experimental.constrained.fadd.v1f32( | ||||
<1 x float> <float 0x7FF0000000000000>, | <1 x float> <float 0x7FF0000000000000>, | ||||
<1 x float> <float 1.0>, | <1 x float> <float 1.0>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <1 x float> %add | ret <1 x float> %add | ||||
} | } | ||||
define <2 x double> @constrained_vector_fadd_v2f64() { | define <2 x double> @constrained_vector_fadd_v2f64() #0 { | ||||
; S390X-LABEL: constrained_vector_fadd_v2f64: | ; S390X-LABEL: constrained_vector_fadd_v2f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: larl %r1, .LCPI16_0 | ; S390X-NEXT: larl %r1, .LCPI16_0 | ||||
; S390X-NEXT: ld %f1, 0(%r1) | ; S390X-NEXT: ld %f1, 0(%r1) | ||||
; S390X-NEXT: larl %r1, .LCPI16_2 | ; S390X-NEXT: larl %r1, .LCPI16_2 | ||||
; S390X-NEXT: ldeb %f0, 0(%r1) | ; S390X-NEXT: ldeb %f0, 0(%r1) | ||||
; S390X-NEXT: larl %r1, .LCPI16_1 | ; S390X-NEXT: larl %r1, .LCPI16_1 | ||||
; S390X-NEXT: ldr %f2, %f1 | ; S390X-NEXT: ldr %f2, %f1 | ||||
Show All 9 Lines | |||||
; SZ13-NEXT: vl %v1, 0(%r1), 3 | ; SZ13-NEXT: vl %v1, 0(%r1), 3 | ||||
; SZ13-NEXT: vfadb %v24, %v1, %v0 | ; SZ13-NEXT: vfadb %v24, %v1, %v0 | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%add = call <2 x double> @llvm.experimental.constrained.fadd.v2f64( | %add = call <2 x double> @llvm.experimental.constrained.fadd.v2f64( | ||||
<2 x double> <double 0x7FEFFFFFFFFFFFFF, double 0x7FEFFFFFFFFFFFFF>, | <2 x double> <double 0x7FEFFFFFFFFFFFFF, double 0x7FEFFFFFFFFFFFFF>, | ||||
<2 x double> <double 1.000000e+00, double 1.000000e-01>, | <2 x double> <double 1.000000e+00, double 1.000000e-01>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <2 x double> %add | ret <2 x double> %add | ||||
} | } | ||||
define <3 x float> @constrained_vector_fadd_v3f32() { | define <3 x float> @constrained_vector_fadd_v3f32() #0 { | ||||
; S390X-LABEL: constrained_vector_fadd_v3f32: | ; S390X-LABEL: constrained_vector_fadd_v3f32: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: larl %r1, .LCPI17_0 | ; S390X-NEXT: larl %r1, .LCPI17_0 | ||||
; S390X-NEXT: le %f0, 0(%r1) | ; S390X-NEXT: le %f0, 0(%r1) | ||||
; S390X-NEXT: lzer %f4 | ; S390X-NEXT: lzer %f4 | ||||
; S390X-NEXT: aebr %f4, %f0 | ; S390X-NEXT: aebr %f4, %f0 | ||||
; S390X-NEXT: larl %r1, .LCPI17_1 | ; S390X-NEXT: larl %r1, .LCPI17_1 | ||||
; S390X-NEXT: ler %f2, %f0 | ; S390X-NEXT: ler %f2, %f0 | ||||
Show All 16 Lines | |||||
; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%add = call <3 x float> @llvm.experimental.constrained.fadd.v3f32( | %add = call <3 x float> @llvm.experimental.constrained.fadd.v3f32( | ||||
<3 x float> <float 0xFFFFFFFFE0000000, float 0xFFFFFFFFE0000000, | <3 x float> <float 0xFFFFFFFFE0000000, float 0xFFFFFFFFE0000000, | ||||
float 0xFFFFFFFFE0000000>, | float 0xFFFFFFFFE0000000>, | ||||
<3 x float> <float 2.0, float 1.0, float 0.0>, | <3 x float> <float 2.0, float 1.0, float 0.0>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <3 x float> %add | ret <3 x float> %add | ||||
} | } | ||||
define void @constrained_vector_fadd_v3f64(<3 x double>* %a) { | define void @constrained_vector_fadd_v3f64(<3 x double>* %a) #0 { | ||||
; S390X-LABEL: constrained_vector_fadd_v3f64: | ; S390X-LABEL: constrained_vector_fadd_v3f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: ld %f0, 8(%r2) | ; S390X-NEXT: ld %f0, 8(%r2) | ||||
; S390X-NEXT: larl %r1, .LCPI18_0 | ; S390X-NEXT: larl %r1, .LCPI18_0 | ||||
; S390X-NEXT: ld %f1, 0(%r1) | ; S390X-NEXT: ld %f1, 0(%r1) | ||||
; S390X-NEXT: ld %f2, 16(%r2) | ; S390X-NEXT: ld %f2, 16(%r2) | ||||
; S390X-NEXT: adbr %f0, %f1 | ; S390X-NEXT: adbr %f0, %f1 | ||||
; S390X-NEXT: ldr %f3, %f1 | ; S390X-NEXT: ldr %f3, %f1 | ||||
Show All 18 Lines | |||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%b = load <3 x double>, <3 x double>* %a | %b = load <3 x double>, <3 x double>* %a | ||||
%add = call <3 x double> @llvm.experimental.constrained.fadd.v3f64( | %add = call <3 x double> @llvm.experimental.constrained.fadd.v3f64( | ||||
<3 x double> <double 0x7FEFFFFFFFFFFFFF, double 0x7FEFFFFFFFFFFFFF, | <3 x double> <double 0x7FEFFFFFFFFFFFFF, double 0x7FEFFFFFFFFFFFFF, | ||||
double 0x7FEFFFFFFFFFFFFF>, | double 0x7FEFFFFFFFFFFFFF>, | ||||
<3 x double> %b, | <3 x double> %b, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
store <3 x double> %add, <3 x double>* %a | store <3 x double> %add, <3 x double>* %a | ||||
ret void | ret void | ||||
} | } | ||||
define <4 x double> @constrained_vector_fadd_v4f64() { | define <4 x double> @constrained_vector_fadd_v4f64() #0 { | ||||
; S390X-LABEL: constrained_vector_fadd_v4f64: | ; S390X-LABEL: constrained_vector_fadd_v4f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: larl %r1, .LCPI19_0 | ; S390X-NEXT: larl %r1, .LCPI19_0 | ||||
; S390X-NEXT: ld %f1, 0(%r1) | ; S390X-NEXT: ld %f1, 0(%r1) | ||||
; S390X-NEXT: larl %r1, .LCPI19_1 | ; S390X-NEXT: larl %r1, .LCPI19_1 | ||||
; S390X-NEXT: ldr %f2, %f1 | ; S390X-NEXT: ldr %f2, %f1 | ||||
; S390X-NEXT: ldr %f6, %f1 | ; S390X-NEXT: ldr %f6, %f1 | ||||
; S390X-NEXT: adb %f6, 0(%r1) | ; S390X-NEXT: adb %f6, 0(%r1) | ||||
Show All 20 Lines | |||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%add = call <4 x double> @llvm.experimental.constrained.fadd.v4f64( | %add = call <4 x double> @llvm.experimental.constrained.fadd.v4f64( | ||||
<4 x double> <double 0x7FEFFFFFFFFFFFFF, double 0x7FEFFFFFFFFFFFFF, | <4 x double> <double 0x7FEFFFFFFFFFFFFF, double 0x7FEFFFFFFFFFFFFF, | ||||
double 0x7FEFFFFFFFFFFFFF, double 0x7FEFFFFFFFFFFFFF>, | double 0x7FEFFFFFFFFFFFFF, double 0x7FEFFFFFFFFFFFFF>, | ||||
<4 x double> <double 1.000000e+00, double 1.000000e-01, | <4 x double> <double 1.000000e+00, double 1.000000e-01, | ||||
double 2.000000e+00, double 2.000000e-01>, | double 2.000000e+00, double 2.000000e-01>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <4 x double> %add | ret <4 x double> %add | ||||
} | } | ||||
define <1 x float> @constrained_vector_fsub_v1f32() { | define <1 x float> @constrained_vector_fsub_v1f32() #0 { | ||||
; S390X-LABEL: constrained_vector_fsub_v1f32: | ; S390X-LABEL: constrained_vector_fsub_v1f32: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: larl %r1, .LCPI20_0 | ; S390X-NEXT: larl %r1, .LCPI20_0 | ||||
; S390X-NEXT: le %f0, 0(%r1) | ; S390X-NEXT: le %f0, 0(%r1) | ||||
; S390X-NEXT: larl %r1, .LCPI20_1 | ; S390X-NEXT: larl %r1, .LCPI20_1 | ||||
; S390X-NEXT: seb %f0, 0(%r1) | ; S390X-NEXT: seb %f0, 0(%r1) | ||||
; S390X-NEXT: br %r14 | ; S390X-NEXT: br %r14 | ||||
; | ; | ||||
; SZ13-LABEL: constrained_vector_fsub_v1f32: | ; SZ13-LABEL: constrained_vector_fsub_v1f32: | ||||
; SZ13: # %bb.0: # %entry | ; SZ13: # %bb.0: # %entry | ||||
; SZ13-NEXT: vgmf %v0, 2, 8 | ; SZ13-NEXT: vgmf %v0, 2, 8 | ||||
; SZ13-NEXT: vgmf %v1, 1, 8 | ; SZ13-NEXT: vgmf %v1, 1, 8 | ||||
; SZ13-NEXT: sebr %f1, %f0 | ; SZ13-NEXT: sebr %f1, %f0 | ||||
; SZ13-NEXT: vlr %v24, %v1 | ; SZ13-NEXT: vlr %v24, %v1 | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%sub = call <1 x float> @llvm.experimental.constrained.fsub.v1f32( | %sub = call <1 x float> @llvm.experimental.constrained.fsub.v1f32( | ||||
<1 x float> <float 0x7FF0000000000000>, | <1 x float> <float 0x7FF0000000000000>, | ||||
<1 x float> <float 1.000000e+00>, | <1 x float> <float 1.000000e+00>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <1 x float> %sub | ret <1 x float> %sub | ||||
} | } | ||||
define <2 x double> @constrained_vector_fsub_v2f64() { | define <2 x double> @constrained_vector_fsub_v2f64() #0 { | ||||
; S390X-LABEL: constrained_vector_fsub_v2f64: | ; S390X-LABEL: constrained_vector_fsub_v2f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: larl %r1, .LCPI21_0 | ; S390X-NEXT: larl %r1, .LCPI21_0 | ||||
; S390X-NEXT: ld %f0, 0(%r1) | ; S390X-NEXT: ld %f0, 0(%r1) | ||||
; S390X-NEXT: larl %r1, .LCPI21_2 | ; S390X-NEXT: larl %r1, .LCPI21_2 | ||||
; S390X-NEXT: ldeb %f1, 0(%r1) | ; S390X-NEXT: ldeb %f1, 0(%r1) | ||||
; S390X-NEXT: larl %r1, .LCPI21_1 | ; S390X-NEXT: larl %r1, .LCPI21_1 | ||||
; S390X-NEXT: ldr %f2, %f0 | ; S390X-NEXT: ldr %f2, %f0 | ||||
; S390X-NEXT: sdb %f2, 0(%r1) | ; S390X-NEXT: sdb %f2, 0(%r1) | ||||
; S390X-NEXT: sdbr %f0, %f1 | ; S390X-NEXT: sdbr %f0, %f1 | ||||
; S390X-NEXT: br %r14 | ; S390X-NEXT: br %r14 | ||||
; | ; | ||||
; SZ13-LABEL: constrained_vector_fsub_v2f64: | ; SZ13-LABEL: constrained_vector_fsub_v2f64: | ||||
; SZ13: # %bb.0: # %entry | ; SZ13: # %bb.0: # %entry | ||||
; SZ13-NEXT: larl %r1, .LCPI21_0 | ; SZ13-NEXT: larl %r1, .LCPI21_0 | ||||
; SZ13-NEXT: vl %v0, 0(%r1), 3 | ; SZ13-NEXT: vl %v0, 0(%r1), 3 | ||||
; SZ13-NEXT: vgmg %v1, 12, 10 | ; SZ13-NEXT: vgmg %v1, 12, 10 | ||||
; SZ13-NEXT: vfsdb %v24, %v1, %v0 | ; SZ13-NEXT: vfsdb %v24, %v1, %v0 | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%sub = call <2 x double> @llvm.experimental.constrained.fsub.v2f64( | %sub = call <2 x double> @llvm.experimental.constrained.fsub.v2f64( | ||||
<2 x double> <double 0xFFEFFFFFFFFFFFFF, double 0xFFEFFFFFFFFFFFFF>, | <2 x double> <double 0xFFEFFFFFFFFFFFFF, double 0xFFEFFFFFFFFFFFFF>, | ||||
<2 x double> <double 1.000000e+00, double 1.000000e-01>, | <2 x double> <double 1.000000e+00, double 1.000000e-01>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <2 x double> %sub | ret <2 x double> %sub | ||||
} | } | ||||
define <3 x float> @constrained_vector_fsub_v3f32() { | define <3 x float> @constrained_vector_fsub_v3f32() #0 { | ||||
; S390X-LABEL: constrained_vector_fsub_v3f32: | ; S390X-LABEL: constrained_vector_fsub_v3f32: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: larl %r1, .LCPI22_0 | ; S390X-NEXT: larl %r1, .LCPI22_0 | ||||
; S390X-NEXT: le %f0, 0(%r1) | ; S390X-NEXT: le %f0, 0(%r1) | ||||
; S390X-NEXT: ler %f4, %f0 | ; S390X-NEXT: ler %f4, %f0 | ||||
; S390X-NEXT: larl %r1, .LCPI22_1 | ; S390X-NEXT: larl %r1, .LCPI22_1 | ||||
; S390X-NEXT: ler %f2, %f0 | ; S390X-NEXT: ler %f2, %f0 | ||||
; S390X-NEXT: seb %f2, 0(%r1) | ; S390X-NEXT: seb %f2, 0(%r1) | ||||
Show All 19 Lines | |||||
; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%sub = call <3 x float> @llvm.experimental.constrained.fsub.v3f32( | %sub = call <3 x float> @llvm.experimental.constrained.fsub.v3f32( | ||||
<3 x float> <float 0xFFFFFFFFE0000000, float 0xFFFFFFFFE0000000, | <3 x float> <float 0xFFFFFFFFE0000000, float 0xFFFFFFFFE0000000, | ||||
float 0xFFFFFFFFE0000000>, | float 0xFFFFFFFFE0000000>, | ||||
<3 x float> <float 2.0, float 1.0, float 0.0>, | <3 x float> <float 2.0, float 1.0, float 0.0>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <3 x float> %sub | ret <3 x float> %sub | ||||
} | } | ||||
define void @constrained_vector_fsub_v3f64(<3 x double>* %a) { | define void @constrained_vector_fsub_v3f64(<3 x double>* %a) #0 { | ||||
; S390X-LABEL: constrained_vector_fsub_v3f64: | ; S390X-LABEL: constrained_vector_fsub_v3f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: larl %r1, .LCPI23_0 | ; S390X-NEXT: larl %r1, .LCPI23_0 | ||||
; S390X-NEXT: ld %f0, 0(%r1) | ; S390X-NEXT: ld %f0, 0(%r1) | ||||
; S390X-NEXT: ld %f1, 8(%r2) | ; S390X-NEXT: ld %f1, 8(%r2) | ||||
; S390X-NEXT: ld %f2, 16(%r2) | ; S390X-NEXT: ld %f2, 16(%r2) | ||||
; S390X-NEXT: ldr %f3, %f0 | ; S390X-NEXT: ldr %f3, %f0 | ||||
; S390X-NEXT: sdb %f3, 0(%r2) | ; S390X-NEXT: sdb %f3, 0(%r2) | ||||
Show All 17 Lines | |||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%b = load <3 x double>, <3 x double>* %a | %b = load <3 x double>, <3 x double>* %a | ||||
%sub = call <3 x double> @llvm.experimental.constrained.fsub.v3f64( | %sub = call <3 x double> @llvm.experimental.constrained.fsub.v3f64( | ||||
<3 x double> <double 0xFFEFFFFFFFFFFFFF, double 0xFFEFFFFFFFFFFFFF, | <3 x double> <double 0xFFEFFFFFFFFFFFFF, double 0xFFEFFFFFFFFFFFFF, | ||||
double 0xFFEFFFFFFFFFFFFF>, | double 0xFFEFFFFFFFFFFFFF>, | ||||
<3 x double> %b, | <3 x double> %b, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
store <3 x double> %sub, <3 x double>* %a | store <3 x double> %sub, <3 x double>* %a | ||||
ret void | ret void | ||||
} | } | ||||
define <4 x double> @constrained_vector_fsub_v4f64() { | define <4 x double> @constrained_vector_fsub_v4f64() #0 { | ||||
; S390X-LABEL: constrained_vector_fsub_v4f64: | ; S390X-LABEL: constrained_vector_fsub_v4f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: larl %r1, .LCPI24_0 | ; S390X-NEXT: larl %r1, .LCPI24_0 | ||||
; S390X-NEXT: ld %f0, 0(%r1) | ; S390X-NEXT: ld %f0, 0(%r1) | ||||
; S390X-NEXT: larl %r1, .LCPI24_1 | ; S390X-NEXT: larl %r1, .LCPI24_1 | ||||
; S390X-NEXT: ldr %f6, %f0 | ; S390X-NEXT: ldr %f6, %f0 | ||||
; S390X-NEXT: sdb %f6, 0(%r1) | ; S390X-NEXT: sdb %f6, 0(%r1) | ||||
; S390X-NEXT: larl %r1, .LCPI24_2 | ; S390X-NEXT: larl %r1, .LCPI24_2 | ||||
Show All 20 Lines | |||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%sub = call <4 x double> @llvm.experimental.constrained.fsub.v4f64( | %sub = call <4 x double> @llvm.experimental.constrained.fsub.v4f64( | ||||
<4 x double> <double 0xFFEFFFFFFFFFFFFF, double 0xFFEFFFFFFFFFFFFF, | <4 x double> <double 0xFFEFFFFFFFFFFFFF, double 0xFFEFFFFFFFFFFFFF, | ||||
double 0xFFEFFFFFFFFFFFFF, double 0xFFEFFFFFFFFFFFFF>, | double 0xFFEFFFFFFFFFFFFF, double 0xFFEFFFFFFFFFFFFF>, | ||||
<4 x double> <double 1.000000e+00, double 1.000000e-01, | <4 x double> <double 1.000000e+00, double 1.000000e-01, | ||||
double 2.000000e+00, double 2.000000e-01>, | double 2.000000e+00, double 2.000000e-01>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <4 x double> %sub | ret <4 x double> %sub | ||||
} | } | ||||
define <1 x float> @constrained_vector_sqrt_v1f32() { | define <1 x float> @constrained_vector_sqrt_v1f32() #0 { | ||||
; S390X-LABEL: constrained_vector_sqrt_v1f32: | ; S390X-LABEL: constrained_vector_sqrt_v1f32: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: larl %r1, .LCPI25_0 | ; S390X-NEXT: larl %r1, .LCPI25_0 | ||||
; S390X-NEXT: sqeb %f0, 0(%r1) | ; S390X-NEXT: sqeb %f0, 0(%r1) | ||||
; S390X-NEXT: br %r14 | ; S390X-NEXT: br %r14 | ||||
; | ; | ||||
; SZ13-LABEL: constrained_vector_sqrt_v1f32: | ; SZ13-LABEL: constrained_vector_sqrt_v1f32: | ||||
; SZ13: # %bb.0: # %entry | ; SZ13: # %bb.0: # %entry | ||||
; SZ13-NEXT: larl %r1, .LCPI25_0 | ; SZ13-NEXT: larl %r1, .LCPI25_0 | ||||
; SZ13-NEXT: sqeb %f0, 0(%r1) | ; SZ13-NEXT: sqeb %f0, 0(%r1) | ||||
; SZ13-NEXT: vlr %v24, %v0 | ; SZ13-NEXT: vlr %v24, %v0 | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%sqrt = call <1 x float> @llvm.experimental.constrained.sqrt.v1f32( | %sqrt = call <1 x float> @llvm.experimental.constrained.sqrt.v1f32( | ||||
<1 x float> <float 42.0>, | <1 x float> <float 42.0>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <1 x float> %sqrt | ret <1 x float> %sqrt | ||||
} | } | ||||
define <2 x double> @constrained_vector_sqrt_v2f64() { | define <2 x double> @constrained_vector_sqrt_v2f64() #0 { | ||||
; S390X-LABEL: constrained_vector_sqrt_v2f64: | ; S390X-LABEL: constrained_vector_sqrt_v2f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: larl %r1, .LCPI26_0 | ; S390X-NEXT: larl %r1, .LCPI26_0 | ||||
; S390X-NEXT: larl %r2, .LCPI26_1 | ; S390X-NEXT: larl %r2, .LCPI26_1 | ||||
; S390X-NEXT: ldeb %f0, 0(%r2) | ; S390X-NEXT: ldeb %f0, 0(%r2) | ||||
; S390X-NEXT: sqdb %f2, 0(%r1) | ; S390X-NEXT: sqdb %f2, 0(%r1) | ||||
; S390X-NEXT: sqdbr %f0, %f0 | ; S390X-NEXT: sqdbr %f0, %f0 | ||||
; S390X-NEXT: br %r14 | ; S390X-NEXT: br %r14 | ||||
; | ; | ||||
; SZ13-LABEL: constrained_vector_sqrt_v2f64: | ; SZ13-LABEL: constrained_vector_sqrt_v2f64: | ||||
; SZ13: # %bb.0: # %entry | ; SZ13: # %bb.0: # %entry | ||||
; SZ13-NEXT: larl %r1, .LCPI26_0 | ; SZ13-NEXT: larl %r1, .LCPI26_0 | ||||
; SZ13-NEXT: vl %v0, 0(%r1), 3 | ; SZ13-NEXT: vl %v0, 0(%r1), 3 | ||||
; SZ13-NEXT: vfsqdb %v24, %v0 | ; SZ13-NEXT: vfsqdb %v24, %v0 | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%sqrt = call <2 x double> @llvm.experimental.constrained.sqrt.v2f64( | %sqrt = call <2 x double> @llvm.experimental.constrained.sqrt.v2f64( | ||||
<2 x double> <double 42.0, double 42.1>, | <2 x double> <double 42.0, double 42.1>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <2 x double> %sqrt | ret <2 x double> %sqrt | ||||
} | } | ||||
define <3 x float> @constrained_vector_sqrt_v3f32() { | define <3 x float> @constrained_vector_sqrt_v3f32() #0 { | ||||
; S390X-LABEL: constrained_vector_sqrt_v3f32: | ; S390X-LABEL: constrained_vector_sqrt_v3f32: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: larl %r1, .LCPI27_0 | ; S390X-NEXT: larl %r1, .LCPI27_0 | ||||
; S390X-NEXT: sqeb %f4, 0(%r1) | ; S390X-NEXT: sqeb %f4, 0(%r1) | ||||
; S390X-NEXT: larl %r1, .LCPI27_1 | ; S390X-NEXT: larl %r1, .LCPI27_1 | ||||
; S390X-NEXT: sqeb %f2, 0(%r1) | ; S390X-NEXT: sqeb %f2, 0(%r1) | ||||
; S390X-NEXT: larl %r1, .LCPI27_2 | ; S390X-NEXT: larl %r1, .LCPI27_2 | ||||
; S390X-NEXT: sqeb %f0, 0(%r1) | ; S390X-NEXT: sqeb %f0, 0(%r1) | ||||
Show All 10 Lines | |||||
; SZ13-NEXT: sqeb %f2, 0(%r1) | ; SZ13-NEXT: sqeb %f2, 0(%r1) | ||||
; SZ13-NEXT: vmrhf %v1, %v1, %v2 | ; SZ13-NEXT: vmrhf %v1, %v1, %v2 | ||||
; SZ13-NEXT: vmrhg %v24, %v1, %v0 | ; SZ13-NEXT: vmrhg %v24, %v1, %v0 | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%sqrt = call <3 x float> @llvm.experimental.constrained.sqrt.v3f32( | %sqrt = call <3 x float> @llvm.experimental.constrained.sqrt.v3f32( | ||||
<3 x float> <float 42.0, float 43.0, float 44.0>, | <3 x float> <float 42.0, float 43.0, float 44.0>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <3 x float> %sqrt | ret <3 x float> %sqrt | ||||
} | } | ||||
define void @constrained_vector_sqrt_v3f64(<3 x double>* %a) { | define void @constrained_vector_sqrt_v3f64(<3 x double>* %a) #0 { | ||||
; S390X-LABEL: constrained_vector_sqrt_v3f64: | ; S390X-LABEL: constrained_vector_sqrt_v3f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: ld %f0, 8(%r2) | ; S390X-NEXT: ld %f0, 8(%r2) | ||||
; S390X-NEXT: ld %f1, 16(%r2) | ; S390X-NEXT: ld %f1, 16(%r2) | ||||
; S390X-NEXT: sqdb %f2, 0(%r2) | ; S390X-NEXT: sqdb %f2, 0(%r2) | ||||
; S390X-NEXT: sqdbr %f0, %f0 | ; S390X-NEXT: sqdbr %f0, %f0 | ||||
; S390X-NEXT: sqdbr %f1, %f1 | ; S390X-NEXT: sqdbr %f1, %f1 | ||||
; S390X-NEXT: std %f1, 16(%r2) | ; S390X-NEXT: std %f1, 16(%r2) | ||||
Show All 9 Lines | |||||
; SZ13-NEXT: vfsqdb %v0, %v0 | ; SZ13-NEXT: vfsqdb %v0, %v0 | ||||
; SZ13-NEXT: vst %v0, 0(%r2), 4 | ; SZ13-NEXT: vst %v0, 0(%r2), 4 | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%b = load <3 x double>, <3 x double>* %a | %b = load <3 x double>, <3 x double>* %a | ||||
%sqrt = call <3 x double> @llvm.experimental.constrained.sqrt.v3f64( | %sqrt = call <3 x double> @llvm.experimental.constrained.sqrt.v3f64( | ||||
<3 x double> %b, | <3 x double> %b, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
store <3 x double> %sqrt, <3 x double>* %a | store <3 x double> %sqrt, <3 x double>* %a | ||||
ret void | ret void | ||||
} | } | ||||
define <4 x double> @constrained_vector_sqrt_v4f64() { | define <4 x double> @constrained_vector_sqrt_v4f64() #0 { | ||||
; S390X-LABEL: constrained_vector_sqrt_v4f64: | ; S390X-LABEL: constrained_vector_sqrt_v4f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: larl %r1, .LCPI29_0 | ; S390X-NEXT: larl %r1, .LCPI29_0 | ||||
; S390X-NEXT: sqdb %f6, 0(%r1) | ; S390X-NEXT: sqdb %f6, 0(%r1) | ||||
; S390X-NEXT: larl %r1, .LCPI29_1 | ; S390X-NEXT: larl %r1, .LCPI29_1 | ||||
; S390X-NEXT: sqdb %f4, 0(%r1) | ; S390X-NEXT: sqdb %f4, 0(%r1) | ||||
; S390X-NEXT: larl %r1, .LCPI29_3 | ; S390X-NEXT: larl %r1, .LCPI29_3 | ||||
; S390X-NEXT: ldeb %f0, 0(%r1) | ; S390X-NEXT: ldeb %f0, 0(%r1) | ||||
Show All 11 Lines | |||||
; SZ13-NEXT: vl %v0, 0(%r1), 3 | ; SZ13-NEXT: vl %v0, 0(%r1), 3 | ||||
; SZ13-NEXT: vfsqdb %v24, %v0 | ; SZ13-NEXT: vfsqdb %v24, %v0 | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%sqrt = call <4 x double> @llvm.experimental.constrained.sqrt.v4f64( | %sqrt = call <4 x double> @llvm.experimental.constrained.sqrt.v4f64( | ||||
<4 x double> <double 42.0, double 42.1, | <4 x double> <double 42.0, double 42.1, | ||||
double 42.2, double 42.3>, | double 42.2, double 42.3>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <4 x double> %sqrt | ret <4 x double> %sqrt | ||||
} | } | ||||
define <1 x float> @constrained_vector_pow_v1f32() { | define <1 x float> @constrained_vector_pow_v1f32() #0 { | ||||
; S390X-LABEL: constrained_vector_pow_v1f32: | ; S390X-LABEL: constrained_vector_pow_v1f32: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -160 | ; S390X-NEXT: aghi %r15, -160 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 320 | ; S390X-NEXT: .cfi_def_cfa_offset 320 | ||||
; S390X-NEXT: larl %r1, .LCPI30_0 | ; S390X-NEXT: larl %r1, .LCPI30_0 | ||||
Show All 20 Lines | |||||
; SZ13-NEXT: vlr %v24, %v0 | ; SZ13-NEXT: vlr %v24, %v0 | ||||
; SZ13-NEXT: lmg %r14, %r15, 272(%r15) | ; SZ13-NEXT: lmg %r14, %r15, 272(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%pow = call <1 x float> @llvm.experimental.constrained.pow.v1f32( | %pow = call <1 x float> @llvm.experimental.constrained.pow.v1f32( | ||||
<1 x float> <float 42.0>, | <1 x float> <float 42.0>, | ||||
<1 x float> <float 3.0>, | <1 x float> <float 3.0>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <1 x float> %pow | ret <1 x float> %pow | ||||
} | } | ||||
define <2 x double> @constrained_vector_pow_v2f64() { | define <2 x double> @constrained_vector_pow_v2f64() #0 { | ||||
; S390X-LABEL: constrained_vector_pow_v2f64: | ; S390X-LABEL: constrained_vector_pow_v2f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -176 | ; S390X-NEXT: aghi %r15, -176 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 336 | ; S390X-NEXT: .cfi_def_cfa_offset 336 | ||||
; S390X-NEXT: std %f8, 168(%r15) # 8-byte Folded Spill | ; S390X-NEXT: std %f8, 168(%r15) # 8-byte Folded Spill | ||||
▲ Show 20 Lines • Show All 46 Lines • ▼ Show 20 Lines | |||||
; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ||||
; SZ13-NEXT: lmg %r14, %r15, 296(%r15) | ; SZ13-NEXT: lmg %r14, %r15, 296(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%pow = call <2 x double> @llvm.experimental.constrained.pow.v2f64( | %pow = call <2 x double> @llvm.experimental.constrained.pow.v2f64( | ||||
<2 x double> <double 42.1, double 42.2>, | <2 x double> <double 42.1, double 42.2>, | ||||
<2 x double> <double 3.0, double 3.0>, | <2 x double> <double 3.0, double 3.0>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <2 x double> %pow | ret <2 x double> %pow | ||||
} | } | ||||
define <3 x float> @constrained_vector_pow_v3f32() { | define <3 x float> @constrained_vector_pow_v3f32() #0 { | ||||
; S390X-LABEL: constrained_vector_pow_v3f32: | ; S390X-LABEL: constrained_vector_pow_v3f32: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -184 | ; S390X-NEXT: aghi %r15, -184 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 344 | ; S390X-NEXT: .cfi_def_cfa_offset 344 | ||||
; S390X-NEXT: std %f8, 176(%r15) # 8-byte Folded Spill | ; S390X-NEXT: std %f8, 176(%r15) # 8-byte Folded Spill | ||||
▲ Show 20 Lines • Show All 65 Lines • ▼ Show 20 Lines | |||||
; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ||||
; SZ13-NEXT: lmg %r14, %r15, 312(%r15) | ; SZ13-NEXT: lmg %r14, %r15, 312(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%pow = call <3 x float> @llvm.experimental.constrained.pow.v3f32( | %pow = call <3 x float> @llvm.experimental.constrained.pow.v3f32( | ||||
<3 x float> <float 42.0, float 43.0, float 44.0>, | <3 x float> <float 42.0, float 43.0, float 44.0>, | ||||
<3 x float> <float 3.0, float 3.0, float 3.0>, | <3 x float> <float 3.0, float 3.0, float 3.0>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <3 x float> %pow | ret <3 x float> %pow | ||||
} | } | ||||
define void @constrained_vector_pow_v3f64(<3 x double>* %a) { | define void @constrained_vector_pow_v3f64(<3 x double>* %a) #0 { | ||||
; S390X-LABEL: constrained_vector_pow_v3f64: | ; S390X-LABEL: constrained_vector_pow_v3f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r13, %r15, 104(%r15) | ; S390X-NEXT: stmg %r13, %r15, 104(%r15) | ||||
; S390X-NEXT: .cfi_offset %r13, -56 | ; S390X-NEXT: .cfi_offset %r13, -56 | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -192 | ; S390X-NEXT: aghi %r15, -192 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 352 | ; S390X-NEXT: .cfi_def_cfa_offset 352 | ||||
▲ Show 20 Lines • Show All 74 Lines • ▼ Show 20 Lines | |||||
; SZ13-NEXT: lmg %r13, %r15, 312(%r15) | ; SZ13-NEXT: lmg %r13, %r15, 312(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%b = load <3 x double>, <3 x double>* %a | %b = load <3 x double>, <3 x double>* %a | ||||
%pow = call <3 x double> @llvm.experimental.constrained.pow.v3f64( | %pow = call <3 x double> @llvm.experimental.constrained.pow.v3f64( | ||||
<3 x double> %b, | <3 x double> %b, | ||||
<3 x double> <double 3.0, double 3.0, double 3.0>, | <3 x double> <double 3.0, double 3.0, double 3.0>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
store <3 x double> %pow, <3 x double>* %a | store <3 x double> %pow, <3 x double>* %a | ||||
ret void | ret void | ||||
} | } | ||||
define <4 x double> @constrained_vector_pow_v4f64() { | define <4 x double> @constrained_vector_pow_v4f64() #0 { | ||||
; S390X-LABEL: constrained_vector_pow_v4f64: | ; S390X-LABEL: constrained_vector_pow_v4f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -192 | ; S390X-NEXT: aghi %r15, -192 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 352 | ; S390X-NEXT: .cfi_def_cfa_offset 352 | ||||
; S390X-NEXT: std %f8, 184(%r15) # 8-byte Folded Spill | ; S390X-NEXT: std %f8, 184(%r15) # 8-byte Folded Spill | ||||
▲ Show 20 Lines • Show All 83 Lines • ▼ Show 20 Lines | |||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%pow = call <4 x double> @llvm.experimental.constrained.pow.v4f64( | %pow = call <4 x double> @llvm.experimental.constrained.pow.v4f64( | ||||
<4 x double> <double 42.1, double 42.2, | <4 x double> <double 42.1, double 42.2, | ||||
double 42.3, double 42.4>, | double 42.3, double 42.4>, | ||||
<4 x double> <double 3.0, double 3.0, | <4 x double> <double 3.0, double 3.0, | ||||
double 3.0, double 3.0>, | double 3.0, double 3.0>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <4 x double> %pow | ret <4 x double> %pow | ||||
} | } | ||||
define <1 x float> @constrained_vector_powi_v1f32() { | define <1 x float> @constrained_vector_powi_v1f32() #0 { | ||||
; S390X-LABEL: constrained_vector_powi_v1f32: | ; S390X-LABEL: constrained_vector_powi_v1f32: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -160 | ; S390X-NEXT: aghi %r15, -160 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 320 | ; S390X-NEXT: .cfi_def_cfa_offset 320 | ||||
; S390X-NEXT: larl %r1, .LCPI35_0 | ; S390X-NEXT: larl %r1, .LCPI35_0 | ||||
Show All 18 Lines | |||||
; SZ13-NEXT: vlr %v24, %v0 | ; SZ13-NEXT: vlr %v24, %v0 | ||||
; SZ13-NEXT: lmg %r14, %r15, 272(%r15) | ; SZ13-NEXT: lmg %r14, %r15, 272(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%powi = call <1 x float> @llvm.experimental.constrained.powi.v1f32( | %powi = call <1 x float> @llvm.experimental.constrained.powi.v1f32( | ||||
<1 x float> <float 42.0>, | <1 x float> <float 42.0>, | ||||
i32 3, | i32 3, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <1 x float> %powi | ret <1 x float> %powi | ||||
} | } | ||||
define <2 x double> @constrained_vector_powi_v2f64() { | define <2 x double> @constrained_vector_powi_v2f64() #0 { | ||||
; S390X-LABEL: constrained_vector_powi_v2f64: | ; S390X-LABEL: constrained_vector_powi_v2f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -168 | ; S390X-NEXT: aghi %r15, -168 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 328 | ; S390X-NEXT: .cfi_def_cfa_offset 328 | ||||
; S390X-NEXT: std %f8, 160(%r15) # 8-byte Folded Spill | ; S390X-NEXT: std %f8, 160(%r15) # 8-byte Folded Spill | ||||
Show All 36 Lines | |||||
; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ||||
; SZ13-NEXT: lmg %r14, %r15, 288(%r15) | ; SZ13-NEXT: lmg %r14, %r15, 288(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%powi = call <2 x double> @llvm.experimental.constrained.powi.v2f64( | %powi = call <2 x double> @llvm.experimental.constrained.powi.v2f64( | ||||
<2 x double> <double 42.1, double 42.2>, | <2 x double> <double 42.1, double 42.2>, | ||||
i32 3, | i32 3, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <2 x double> %powi | ret <2 x double> %powi | ||||
} | } | ||||
define <3 x float> @constrained_vector_powi_v3f32() { | define <3 x float> @constrained_vector_powi_v3f32() #0 { | ||||
; S390X-LABEL: constrained_vector_powi_v3f32: | ; S390X-LABEL: constrained_vector_powi_v3f32: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -176 | ; S390X-NEXT: aghi %r15, -176 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 336 | ; S390X-NEXT: .cfi_def_cfa_offset 336 | ||||
; S390X-NEXT: std %f8, 168(%r15) # 8-byte Folded Spill | ; S390X-NEXT: std %f8, 168(%r15) # 8-byte Folded Spill | ||||
▲ Show 20 Lines • Show All 55 Lines • ▼ Show 20 Lines | |||||
; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ||||
; SZ13-NEXT: lmg %r14, %r15, 304(%r15) | ; SZ13-NEXT: lmg %r14, %r15, 304(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%powi = call <3 x float> @llvm.experimental.constrained.powi.v3f32( | %powi = call <3 x float> @llvm.experimental.constrained.powi.v3f32( | ||||
<3 x float> <float 42.0, float 43.0, float 44.0>, | <3 x float> <float 42.0, float 43.0, float 44.0>, | ||||
i32 3, | i32 3, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <3 x float> %powi | ret <3 x float> %powi | ||||
} | } | ||||
define void @constrained_vector_powi_v3f64(<3 x double>* %a) { | define void @constrained_vector_powi_v3f64(<3 x double>* %a) #0 { | ||||
; S390X-LABEL: constrained_vector_powi_v3f64: | ; S390X-LABEL: constrained_vector_powi_v3f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r13, %r15, 104(%r15) | ; S390X-NEXT: stmg %r13, %r15, 104(%r15) | ||||
; S390X-NEXT: .cfi_offset %r13, -56 | ; S390X-NEXT: .cfi_offset %r13, -56 | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -176 | ; S390X-NEXT: aghi %r15, -176 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 336 | ; S390X-NEXT: .cfi_def_cfa_offset 336 | ||||
▲ Show 20 Lines • Show All 59 Lines • ▼ Show 20 Lines | |||||
; SZ13-NEXT: lmg %r13, %r15, 280(%r15) | ; SZ13-NEXT: lmg %r13, %r15, 280(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%b = load <3 x double>, <3 x double>* %a | %b = load <3 x double>, <3 x double>* %a | ||||
%powi = call <3 x double> @llvm.experimental.constrained.powi.v3f64( | %powi = call <3 x double> @llvm.experimental.constrained.powi.v3f64( | ||||
<3 x double> <double 42.0, double 42.1, double 42.2>, | <3 x double> <double 42.0, double 42.1, double 42.2>, | ||||
i32 3, | i32 3, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
store <3 x double> %powi, <3 x double>* %a | store <3 x double> %powi, <3 x double>* %a | ||||
ret void | ret void | ||||
} | } | ||||
define <4 x double> @constrained_vector_powi_v4f64() { | define <4 x double> @constrained_vector_powi_v4f64() #0 { | ||||
; S390X-LABEL: constrained_vector_powi_v4f64: | ; S390X-LABEL: constrained_vector_powi_v4f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -184 | ; S390X-NEXT: aghi %r15, -184 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 344 | ; S390X-NEXT: .cfi_def_cfa_offset 344 | ||||
; S390X-NEXT: std %f8, 176(%r15) # 8-byte Folded Spill | ; S390X-NEXT: std %f8, 176(%r15) # 8-byte Folded Spill | ||||
▲ Show 20 Lines • Show All 72 Lines • ▼ Show 20 Lines | |||||
; SZ13-NEXT: lmg %r14, %r15, 304(%r15) | ; SZ13-NEXT: lmg %r14, %r15, 304(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%powi = call <4 x double> @llvm.experimental.constrained.powi.v4f64( | %powi = call <4 x double> @llvm.experimental.constrained.powi.v4f64( | ||||
<4 x double> <double 42.1, double 42.2, | <4 x double> <double 42.1, double 42.2, | ||||
double 42.3, double 42.4>, | double 42.3, double 42.4>, | ||||
i32 3, | i32 3, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <4 x double> %powi | ret <4 x double> %powi | ||||
} | } | ||||
define <1 x float> @constrained_vector_sin_v1f32() { | define <1 x float> @constrained_vector_sin_v1f32() #0 { | ||||
; S390X-LABEL: constrained_vector_sin_v1f32: | ; S390X-LABEL: constrained_vector_sin_v1f32: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -160 | ; S390X-NEXT: aghi %r15, -160 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 320 | ; S390X-NEXT: .cfi_def_cfa_offset 320 | ||||
; S390X-NEXT: larl %r1, .LCPI40_0 | ; S390X-NEXT: larl %r1, .LCPI40_0 | ||||
Show All 15 Lines | |||||
; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 | ; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 | ||||
; SZ13-NEXT: vlr %v24, %v0 | ; SZ13-NEXT: vlr %v24, %v0 | ||||
; SZ13-NEXT: lmg %r14, %r15, 272(%r15) | ; SZ13-NEXT: lmg %r14, %r15, 272(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%sin = call <1 x float> @llvm.experimental.constrained.sin.v1f32( | %sin = call <1 x float> @llvm.experimental.constrained.sin.v1f32( | ||||
<1 x float> <float 42.0>, | <1 x float> <float 42.0>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <1 x float> %sin | ret <1 x float> %sin | ||||
} | } | ||||
define <2 x double> @constrained_vector_sin_v2f64() { | define <2 x double> @constrained_vector_sin_v2f64() #0 { | ||||
; S390X-LABEL: constrained_vector_sin_v2f64: | ; S390X-LABEL: constrained_vector_sin_v2f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -168 | ; S390X-NEXT: aghi %r15, -168 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 328 | ; S390X-NEXT: .cfi_def_cfa_offset 328 | ||||
; S390X-NEXT: std %f8, 160(%r15) # 8-byte Folded Spill | ; S390X-NEXT: std %f8, 160(%r15) # 8-byte Folded Spill | ||||
Show All 31 Lines | |||||
; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 | ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 | ||||
; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ||||
; SZ13-NEXT: lmg %r14, %r15, 288(%r15) | ; SZ13-NEXT: lmg %r14, %r15, 288(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%sin = call <2 x double> @llvm.experimental.constrained.sin.v2f64( | %sin = call <2 x double> @llvm.experimental.constrained.sin.v2f64( | ||||
<2 x double> <double 42.0, double 42.1>, | <2 x double> <double 42.0, double 42.1>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <2 x double> %sin | ret <2 x double> %sin | ||||
} | } | ||||
define <3 x float> @constrained_vector_sin_v3f32() { | define <3 x float> @constrained_vector_sin_v3f32() #0 { | ||||
; S390X-LABEL: constrained_vector_sin_v3f32: | ; S390X-LABEL: constrained_vector_sin_v3f32: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -176 | ; S390X-NEXT: aghi %r15, -176 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 336 | ; S390X-NEXT: .cfi_def_cfa_offset 336 | ||||
; S390X-NEXT: std %f8, 168(%r15) # 8-byte Folded Spill | ; S390X-NEXT: std %f8, 168(%r15) # 8-byte Folded Spill | ||||
▲ Show 20 Lines • Show All 48 Lines • ▼ Show 20 Lines | |||||
; SZ13-NEXT: vrepf %v1, %v1, 0 | ; SZ13-NEXT: vrepf %v1, %v1, 0 | ||||
; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ||||
; SZ13-NEXT: lmg %r14, %r15, 304(%r15) | ; SZ13-NEXT: lmg %r14, %r15, 304(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%sin = call <3 x float> @llvm.experimental.constrained.sin.v3f32( | %sin = call <3 x float> @llvm.experimental.constrained.sin.v3f32( | ||||
<3 x float> <float 42.0, float 43.0, float 44.0>, | <3 x float> <float 42.0, float 43.0, float 44.0>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <3 x float> %sin | ret <3 x float> %sin | ||||
} | } | ||||
define void @constrained_vector_sin_v3f64(<3 x double>* %a) { | define void @constrained_vector_sin_v3f64(<3 x double>* %a) #0 { | ||||
; S390X-LABEL: constrained_vector_sin_v3f64: | ; S390X-LABEL: constrained_vector_sin_v3f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r13, %r15, 104(%r15) | ; S390X-NEXT: stmg %r13, %r15, 104(%r15) | ||||
; S390X-NEXT: .cfi_offset %r13, -56 | ; S390X-NEXT: .cfi_offset %r13, -56 | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -184 | ; S390X-NEXT: aghi %r15, -184 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 344 | ; S390X-NEXT: .cfi_def_cfa_offset 344 | ||||
▲ Show 20 Lines • Show All 57 Lines • ▼ Show 20 Lines | |||||
; SZ13-NEXT: vst %v0, 0(%r13), 4 | ; SZ13-NEXT: vst %v0, 0(%r13), 4 | ||||
; SZ13-NEXT: lmg %r13, %r15, 304(%r15) | ; SZ13-NEXT: lmg %r13, %r15, 304(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%b = load <3 x double>, <3 x double>* %a | %b = load <3 x double>, <3 x double>* %a | ||||
%sin = call <3 x double> @llvm.experimental.constrained.sin.v3f64( | %sin = call <3 x double> @llvm.experimental.constrained.sin.v3f64( | ||||
<3 x double> %b, | <3 x double> %b, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
store <3 x double> %sin, <3 x double>* %a | store <3 x double> %sin, <3 x double>* %a | ||||
ret void | ret void | ||||
} | } | ||||
define <4 x double> @constrained_vector_sin_v4f64() { | define <4 x double> @constrained_vector_sin_v4f64() #0 { | ||||
; S390X-LABEL: constrained_vector_sin_v4f64: | ; S390X-LABEL: constrained_vector_sin_v4f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -184 | ; S390X-NEXT: aghi %r15, -184 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 344 | ; S390X-NEXT: .cfi_def_cfa_offset 344 | ||||
; S390X-NEXT: std %f8, 176(%r15) # 8-byte Folded Spill | ; S390X-NEXT: std %f8, 176(%r15) # 8-byte Folded Spill | ||||
▲ Show 20 Lines • Show All 63 Lines • ▼ Show 20 Lines | |||||
; SZ13-NEXT: vmrhg %v26, %v0, %v1 | ; SZ13-NEXT: vmrhg %v26, %v0, %v1 | ||||
; SZ13-NEXT: lmg %r14, %r15, 304(%r15) | ; SZ13-NEXT: lmg %r14, %r15, 304(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%sin = call <4 x double> @llvm.experimental.constrained.sin.v4f64( | %sin = call <4 x double> @llvm.experimental.constrained.sin.v4f64( | ||||
<4 x double> <double 42.0, double 42.1, | <4 x double> <double 42.0, double 42.1, | ||||
double 42.2, double 42.3>, | double 42.2, double 42.3>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <4 x double> %sin | ret <4 x double> %sin | ||||
} | } | ||||
define <1 x float> @constrained_vector_cos_v1f32() { | define <1 x float> @constrained_vector_cos_v1f32() #0 { | ||||
; S390X-LABEL: constrained_vector_cos_v1f32: | ; S390X-LABEL: constrained_vector_cos_v1f32: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -160 | ; S390X-NEXT: aghi %r15, -160 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 320 | ; S390X-NEXT: .cfi_def_cfa_offset 320 | ||||
; S390X-NEXT: larl %r1, .LCPI45_0 | ; S390X-NEXT: larl %r1, .LCPI45_0 | ||||
Show All 15 Lines | |||||
; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 | ; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 | ||||
; SZ13-NEXT: vlr %v24, %v0 | ; SZ13-NEXT: vlr %v24, %v0 | ||||
; SZ13-NEXT: lmg %r14, %r15, 272(%r15) | ; SZ13-NEXT: lmg %r14, %r15, 272(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%cos = call <1 x float> @llvm.experimental.constrained.cos.v1f32( | %cos = call <1 x float> @llvm.experimental.constrained.cos.v1f32( | ||||
<1 x float> <float 42.0>, | <1 x float> <float 42.0>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <1 x float> %cos | ret <1 x float> %cos | ||||
} | } | ||||
define <2 x double> @constrained_vector_cos_v2f64() { | define <2 x double> @constrained_vector_cos_v2f64() #0 { | ||||
; S390X-LABEL: constrained_vector_cos_v2f64: | ; S390X-LABEL: constrained_vector_cos_v2f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -168 | ; S390X-NEXT: aghi %r15, -168 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 328 | ; S390X-NEXT: .cfi_def_cfa_offset 328 | ||||
; S390X-NEXT: std %f8, 160(%r15) # 8-byte Folded Spill | ; S390X-NEXT: std %f8, 160(%r15) # 8-byte Folded Spill | ||||
Show All 31 Lines | |||||
; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 | ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 | ||||
; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ||||
; SZ13-NEXT: lmg %r14, %r15, 288(%r15) | ; SZ13-NEXT: lmg %r14, %r15, 288(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%cos = call <2 x double> @llvm.experimental.constrained.cos.v2f64( | %cos = call <2 x double> @llvm.experimental.constrained.cos.v2f64( | ||||
<2 x double> <double 42.0, double 42.1>, | <2 x double> <double 42.0, double 42.1>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <2 x double> %cos | ret <2 x double> %cos | ||||
} | } | ||||
define <3 x float> @constrained_vector_cos_v3f32() { | define <3 x float> @constrained_vector_cos_v3f32() #0 { | ||||
; S390X-LABEL: constrained_vector_cos_v3f32: | ; S390X-LABEL: constrained_vector_cos_v3f32: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -176 | ; S390X-NEXT: aghi %r15, -176 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 336 | ; S390X-NEXT: .cfi_def_cfa_offset 336 | ||||
; S390X-NEXT: std %f8, 168(%r15) # 8-byte Folded Spill | ; S390X-NEXT: std %f8, 168(%r15) # 8-byte Folded Spill | ||||
▲ Show 20 Lines • Show All 48 Lines • ▼ Show 20 Lines | |||||
; SZ13-NEXT: vrepf %v1, %v1, 0 | ; SZ13-NEXT: vrepf %v1, %v1, 0 | ||||
; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ||||
; SZ13-NEXT: lmg %r14, %r15, 304(%r15) | ; SZ13-NEXT: lmg %r14, %r15, 304(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%cos = call <3 x float> @llvm.experimental.constrained.cos.v3f32( | %cos = call <3 x float> @llvm.experimental.constrained.cos.v3f32( | ||||
<3 x float> <float 42.0, float 43.0, float 44.0>, | <3 x float> <float 42.0, float 43.0, float 44.0>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <3 x float> %cos | ret <3 x float> %cos | ||||
} | } | ||||
define void @constrained_vector_cos_v3f64(<3 x double>* %a) { | define void @constrained_vector_cos_v3f64(<3 x double>* %a) #0 { | ||||
; S390X-LABEL: constrained_vector_cos_v3f64: | ; S390X-LABEL: constrained_vector_cos_v3f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r13, %r15, 104(%r15) | ; S390X-NEXT: stmg %r13, %r15, 104(%r15) | ||||
; S390X-NEXT: .cfi_offset %r13, -56 | ; S390X-NEXT: .cfi_offset %r13, -56 | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -184 | ; S390X-NEXT: aghi %r15, -184 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 344 | ; S390X-NEXT: .cfi_def_cfa_offset 344 | ||||
▲ Show 20 Lines • Show All 57 Lines • ▼ Show 20 Lines | |||||
; SZ13-NEXT: vst %v0, 0(%r13), 4 | ; SZ13-NEXT: vst %v0, 0(%r13), 4 | ||||
; SZ13-NEXT: lmg %r13, %r15, 304(%r15) | ; SZ13-NEXT: lmg %r13, %r15, 304(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%b = load <3 x double>, <3 x double>* %a | %b = load <3 x double>, <3 x double>* %a | ||||
%cos = call <3 x double> @llvm.experimental.constrained.cos.v3f64( | %cos = call <3 x double> @llvm.experimental.constrained.cos.v3f64( | ||||
<3 x double> %b, | <3 x double> %b, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
store <3 x double> %cos, <3 x double>* %a | store <3 x double> %cos, <3 x double>* %a | ||||
ret void | ret void | ||||
} | } | ||||
define <4 x double> @constrained_vector_cos_v4f64() { | define <4 x double> @constrained_vector_cos_v4f64() #0 { | ||||
; S390X-LABEL: constrained_vector_cos_v4f64: | ; S390X-LABEL: constrained_vector_cos_v4f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -184 | ; S390X-NEXT: aghi %r15, -184 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 344 | ; S390X-NEXT: .cfi_def_cfa_offset 344 | ||||
; S390X-NEXT: std %f8, 176(%r15) # 8-byte Folded Spill | ; S390X-NEXT: std %f8, 176(%r15) # 8-byte Folded Spill | ||||
▲ Show 20 Lines • Show All 63 Lines • ▼ Show 20 Lines | |||||
; SZ13-NEXT: vmrhg %v26, %v0, %v1 | ; SZ13-NEXT: vmrhg %v26, %v0, %v1 | ||||
; SZ13-NEXT: lmg %r14, %r15, 304(%r15) | ; SZ13-NEXT: lmg %r14, %r15, 304(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%cos = call <4 x double> @llvm.experimental.constrained.cos.v4f64( | %cos = call <4 x double> @llvm.experimental.constrained.cos.v4f64( | ||||
<4 x double> <double 42.0, double 42.1, | <4 x double> <double 42.0, double 42.1, | ||||
double 42.2, double 42.3>, | double 42.2, double 42.3>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <4 x double> %cos | ret <4 x double> %cos | ||||
} | } | ||||
define <1 x float> @constrained_vector_exp_v1f32() { | define <1 x float> @constrained_vector_exp_v1f32() #0 { | ||||
; S390X-LABEL: constrained_vector_exp_v1f32: | ; S390X-LABEL: constrained_vector_exp_v1f32: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -160 | ; S390X-NEXT: aghi %r15, -160 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 320 | ; S390X-NEXT: .cfi_def_cfa_offset 320 | ||||
; S390X-NEXT: larl %r1, .LCPI50_0 | ; S390X-NEXT: larl %r1, .LCPI50_0 | ||||
Show All 15 Lines | |||||
; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 | ; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 | ||||
; SZ13-NEXT: vlr %v24, %v0 | ; SZ13-NEXT: vlr %v24, %v0 | ||||
; SZ13-NEXT: lmg %r14, %r15, 272(%r15) | ; SZ13-NEXT: lmg %r14, %r15, 272(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%exp = call <1 x float> @llvm.experimental.constrained.exp.v1f32( | %exp = call <1 x float> @llvm.experimental.constrained.exp.v1f32( | ||||
<1 x float> <float 42.0>, | <1 x float> <float 42.0>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <1 x float> %exp | ret <1 x float> %exp | ||||
} | } | ||||
define <2 x double> @constrained_vector_exp_v2f64() { | define <2 x double> @constrained_vector_exp_v2f64() #0 { | ||||
; S390X-LABEL: constrained_vector_exp_v2f64: | ; S390X-LABEL: constrained_vector_exp_v2f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -168 | ; S390X-NEXT: aghi %r15, -168 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 328 | ; S390X-NEXT: .cfi_def_cfa_offset 328 | ||||
; S390X-NEXT: std %f8, 160(%r15) # 8-byte Folded Spill | ; S390X-NEXT: std %f8, 160(%r15) # 8-byte Folded Spill | ||||
Show All 31 Lines | |||||
; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 | ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 | ||||
; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ||||
; SZ13-NEXT: lmg %r14, %r15, 288(%r15) | ; SZ13-NEXT: lmg %r14, %r15, 288(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%exp = call <2 x double> @llvm.experimental.constrained.exp.v2f64( | %exp = call <2 x double> @llvm.experimental.constrained.exp.v2f64( | ||||
<2 x double> <double 42.0, double 42.1>, | <2 x double> <double 42.0, double 42.1>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <2 x double> %exp | ret <2 x double> %exp | ||||
} | } | ||||
define <3 x float> @constrained_vector_exp_v3f32() { | define <3 x float> @constrained_vector_exp_v3f32() #0 { | ||||
; S390X-LABEL: constrained_vector_exp_v3f32: | ; S390X-LABEL: constrained_vector_exp_v3f32: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -176 | ; S390X-NEXT: aghi %r15, -176 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 336 | ; S390X-NEXT: .cfi_def_cfa_offset 336 | ||||
; S390X-NEXT: std %f8, 168(%r15) # 8-byte Folded Spill | ; S390X-NEXT: std %f8, 168(%r15) # 8-byte Folded Spill | ||||
▲ Show 20 Lines • Show All 48 Lines • ▼ Show 20 Lines | |||||
; SZ13-NEXT: vrepf %v1, %v1, 0 | ; SZ13-NEXT: vrepf %v1, %v1, 0 | ||||
; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ||||
; SZ13-NEXT: lmg %r14, %r15, 304(%r15) | ; SZ13-NEXT: lmg %r14, %r15, 304(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%exp = call <3 x float> @llvm.experimental.constrained.exp.v3f32( | %exp = call <3 x float> @llvm.experimental.constrained.exp.v3f32( | ||||
<3 x float> <float 42.0, float 43.0, float 44.0>, | <3 x float> <float 42.0, float 43.0, float 44.0>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <3 x float> %exp | ret <3 x float> %exp | ||||
} | } | ||||
define void @constrained_vector_exp_v3f64(<3 x double>* %a) { | define void @constrained_vector_exp_v3f64(<3 x double>* %a) #0 { | ||||
; S390X-LABEL: constrained_vector_exp_v3f64: | ; S390X-LABEL: constrained_vector_exp_v3f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r13, %r15, 104(%r15) | ; S390X-NEXT: stmg %r13, %r15, 104(%r15) | ||||
; S390X-NEXT: .cfi_offset %r13, -56 | ; S390X-NEXT: .cfi_offset %r13, -56 | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -184 | ; S390X-NEXT: aghi %r15, -184 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 344 | ; S390X-NEXT: .cfi_def_cfa_offset 344 | ||||
▲ Show 20 Lines • Show All 57 Lines • ▼ Show 20 Lines | |||||
; SZ13-NEXT: vst %v0, 0(%r13), 4 | ; SZ13-NEXT: vst %v0, 0(%r13), 4 | ||||
; SZ13-NEXT: lmg %r13, %r15, 304(%r15) | ; SZ13-NEXT: lmg %r13, %r15, 304(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%b = load <3 x double>, <3 x double>* %a | %b = load <3 x double>, <3 x double>* %a | ||||
%exp = call <3 x double> @llvm.experimental.constrained.exp.v3f64( | %exp = call <3 x double> @llvm.experimental.constrained.exp.v3f64( | ||||
<3 x double> %b, | <3 x double> %b, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
store <3 x double> %exp, <3 x double>* %a | store <3 x double> %exp, <3 x double>* %a | ||||
ret void | ret void | ||||
} | } | ||||
define <4 x double> @constrained_vector_exp_v4f64() { | define <4 x double> @constrained_vector_exp_v4f64() #0 { | ||||
; S390X-LABEL: constrained_vector_exp_v4f64: | ; S390X-LABEL: constrained_vector_exp_v4f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -184 | ; S390X-NEXT: aghi %r15, -184 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 344 | ; S390X-NEXT: .cfi_def_cfa_offset 344 | ||||
; S390X-NEXT: std %f8, 176(%r15) # 8-byte Folded Spill | ; S390X-NEXT: std %f8, 176(%r15) # 8-byte Folded Spill | ||||
▲ Show 20 Lines • Show All 63 Lines • ▼ Show 20 Lines | |||||
; SZ13-NEXT: vmrhg %v26, %v0, %v1 | ; SZ13-NEXT: vmrhg %v26, %v0, %v1 | ||||
; SZ13-NEXT: lmg %r14, %r15, 304(%r15) | ; SZ13-NEXT: lmg %r14, %r15, 304(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%exp = call <4 x double> @llvm.experimental.constrained.exp.v4f64( | %exp = call <4 x double> @llvm.experimental.constrained.exp.v4f64( | ||||
<4 x double> <double 42.0, double 42.1, | <4 x double> <double 42.0, double 42.1, | ||||
double 42.2, double 42.3>, | double 42.2, double 42.3>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <4 x double> %exp | ret <4 x double> %exp | ||||
} | } | ||||
define <1 x float> @constrained_vector_exp2_v1f32() { | define <1 x float> @constrained_vector_exp2_v1f32() #0 { | ||||
; S390X-LABEL: constrained_vector_exp2_v1f32: | ; S390X-LABEL: constrained_vector_exp2_v1f32: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -160 | ; S390X-NEXT: aghi %r15, -160 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 320 | ; S390X-NEXT: .cfi_def_cfa_offset 320 | ||||
; S390X-NEXT: larl %r1, .LCPI55_0 | ; S390X-NEXT: larl %r1, .LCPI55_0 | ||||
Show All 15 Lines | |||||
; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 | ; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 | ||||
; SZ13-NEXT: vlr %v24, %v0 | ; SZ13-NEXT: vlr %v24, %v0 | ||||
; SZ13-NEXT: lmg %r14, %r15, 272(%r15) | ; SZ13-NEXT: lmg %r14, %r15, 272(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%exp2 = call <1 x float> @llvm.experimental.constrained.exp2.v1f32( | %exp2 = call <1 x float> @llvm.experimental.constrained.exp2.v1f32( | ||||
<1 x float> <float 42.0>, | <1 x float> <float 42.0>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <1 x float> %exp2 | ret <1 x float> %exp2 | ||||
} | } | ||||
define <2 x double> @constrained_vector_exp2_v2f64() { | define <2 x double> @constrained_vector_exp2_v2f64() #0 { | ||||
; S390X-LABEL: constrained_vector_exp2_v2f64: | ; S390X-LABEL: constrained_vector_exp2_v2f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -168 | ; S390X-NEXT: aghi %r15, -168 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 328 | ; S390X-NEXT: .cfi_def_cfa_offset 328 | ||||
; S390X-NEXT: std %f8, 160(%r15) # 8-byte Folded Spill | ; S390X-NEXT: std %f8, 160(%r15) # 8-byte Folded Spill | ||||
Show All 31 Lines | |||||
; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 | ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 | ||||
; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ||||
; SZ13-NEXT: lmg %r14, %r15, 288(%r15) | ; SZ13-NEXT: lmg %r14, %r15, 288(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%exp2 = call <2 x double> @llvm.experimental.constrained.exp2.v2f64( | %exp2 = call <2 x double> @llvm.experimental.constrained.exp2.v2f64( | ||||
<2 x double> <double 42.1, double 42.0>, | <2 x double> <double 42.1, double 42.0>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <2 x double> %exp2 | ret <2 x double> %exp2 | ||||
} | } | ||||
define <3 x float> @constrained_vector_exp2_v3f32() { | define <3 x float> @constrained_vector_exp2_v3f32() #0 { | ||||
; S390X-LABEL: constrained_vector_exp2_v3f32: | ; S390X-LABEL: constrained_vector_exp2_v3f32: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -176 | ; S390X-NEXT: aghi %r15, -176 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 336 | ; S390X-NEXT: .cfi_def_cfa_offset 336 | ||||
; S390X-NEXT: std %f8, 168(%r15) # 8-byte Folded Spill | ; S390X-NEXT: std %f8, 168(%r15) # 8-byte Folded Spill | ||||
▲ Show 20 Lines • Show All 48 Lines • ▼ Show 20 Lines | |||||
; SZ13-NEXT: vrepf %v1, %v1, 0 | ; SZ13-NEXT: vrepf %v1, %v1, 0 | ||||
; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ||||
; SZ13-NEXT: lmg %r14, %r15, 304(%r15) | ; SZ13-NEXT: lmg %r14, %r15, 304(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%exp2 = call <3 x float> @llvm.experimental.constrained.exp2.v3f32( | %exp2 = call <3 x float> @llvm.experimental.constrained.exp2.v3f32( | ||||
<3 x float> <float 42.0, float 43.0, float 44.0>, | <3 x float> <float 42.0, float 43.0, float 44.0>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <3 x float> %exp2 | ret <3 x float> %exp2 | ||||
} | } | ||||
define void @constrained_vector_exp2_v3f64(<3 x double>* %a) { | define void @constrained_vector_exp2_v3f64(<3 x double>* %a) #0 { | ||||
; S390X-LABEL: constrained_vector_exp2_v3f64: | ; S390X-LABEL: constrained_vector_exp2_v3f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r13, %r15, 104(%r15) | ; S390X-NEXT: stmg %r13, %r15, 104(%r15) | ||||
; S390X-NEXT: .cfi_offset %r13, -56 | ; S390X-NEXT: .cfi_offset %r13, -56 | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -184 | ; S390X-NEXT: aghi %r15, -184 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 344 | ; S390X-NEXT: .cfi_def_cfa_offset 344 | ||||
▲ Show 20 Lines • Show All 57 Lines • ▼ Show 20 Lines | |||||
; SZ13-NEXT: vst %v0, 0(%r13), 4 | ; SZ13-NEXT: vst %v0, 0(%r13), 4 | ||||
; SZ13-NEXT: lmg %r13, %r15, 304(%r15) | ; SZ13-NEXT: lmg %r13, %r15, 304(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%b = load <3 x double>, <3 x double>* %a | %b = load <3 x double>, <3 x double>* %a | ||||
%exp2 = call <3 x double> @llvm.experimental.constrained.exp2.v3f64( | %exp2 = call <3 x double> @llvm.experimental.constrained.exp2.v3f64( | ||||
<3 x double> %b, | <3 x double> %b, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
store <3 x double> %exp2, <3 x double>* %a | store <3 x double> %exp2, <3 x double>* %a | ||||
ret void | ret void | ||||
} | } | ||||
define <4 x double> @constrained_vector_exp2_v4f64() { | define <4 x double> @constrained_vector_exp2_v4f64() #0 { | ||||
; S390X-LABEL: constrained_vector_exp2_v4f64: | ; S390X-LABEL: constrained_vector_exp2_v4f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -184 | ; S390X-NEXT: aghi %r15, -184 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 344 | ; S390X-NEXT: .cfi_def_cfa_offset 344 | ||||
; S390X-NEXT: std %f8, 176(%r15) # 8-byte Folded Spill | ; S390X-NEXT: std %f8, 176(%r15) # 8-byte Folded Spill | ||||
▲ Show 20 Lines • Show All 63 Lines • ▼ Show 20 Lines | |||||
; SZ13-NEXT: vmrhg %v26, %v0, %v1 | ; SZ13-NEXT: vmrhg %v26, %v0, %v1 | ||||
; SZ13-NEXT: lmg %r14, %r15, 304(%r15) | ; SZ13-NEXT: lmg %r14, %r15, 304(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%exp2 = call <4 x double> @llvm.experimental.constrained.exp2.v4f64( | %exp2 = call <4 x double> @llvm.experimental.constrained.exp2.v4f64( | ||||
<4 x double> <double 42.1, double 42.2, | <4 x double> <double 42.1, double 42.2, | ||||
double 42.3, double 42.4>, | double 42.3, double 42.4>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <4 x double> %exp2 | ret <4 x double> %exp2 | ||||
} | } | ||||
define <1 x float> @constrained_vector_log_v1f32() { | define <1 x float> @constrained_vector_log_v1f32() #0 { | ||||
; S390X-LABEL: constrained_vector_log_v1f32: | ; S390X-LABEL: constrained_vector_log_v1f32: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -160 | ; S390X-NEXT: aghi %r15, -160 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 320 | ; S390X-NEXT: .cfi_def_cfa_offset 320 | ||||
; S390X-NEXT: larl %r1, .LCPI60_0 | ; S390X-NEXT: larl %r1, .LCPI60_0 | ||||
Show All 15 Lines | |||||
; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 | ; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 | ||||
; SZ13-NEXT: vlr %v24, %v0 | ; SZ13-NEXT: vlr %v24, %v0 | ||||
; SZ13-NEXT: lmg %r14, %r15, 272(%r15) | ; SZ13-NEXT: lmg %r14, %r15, 272(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%log = call <1 x float> @llvm.experimental.constrained.log.v1f32( | %log = call <1 x float> @llvm.experimental.constrained.log.v1f32( | ||||
<1 x float> <float 42.0>, | <1 x float> <float 42.0>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <1 x float> %log | ret <1 x float> %log | ||||
} | } | ||||
define <2 x double> @constrained_vector_log_v2f64() { | define <2 x double> @constrained_vector_log_v2f64() #0 { | ||||
; S390X-LABEL: constrained_vector_log_v2f64: | ; S390X-LABEL: constrained_vector_log_v2f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -168 | ; S390X-NEXT: aghi %r15, -168 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 328 | ; S390X-NEXT: .cfi_def_cfa_offset 328 | ||||
; S390X-NEXT: std %f8, 160(%r15) # 8-byte Folded Spill | ; S390X-NEXT: std %f8, 160(%r15) # 8-byte Folded Spill | ||||
Show All 31 Lines | |||||
; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 | ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 | ||||
; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ||||
; SZ13-NEXT: lmg %r14, %r15, 288(%r15) | ; SZ13-NEXT: lmg %r14, %r15, 288(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%log = call <2 x double> @llvm.experimental.constrained.log.v2f64( | %log = call <2 x double> @llvm.experimental.constrained.log.v2f64( | ||||
<2 x double> <double 42.0, double 42.1>, | <2 x double> <double 42.0, double 42.1>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <2 x double> %log | ret <2 x double> %log | ||||
} | } | ||||
define <3 x float> @constrained_vector_log_v3f32() { | define <3 x float> @constrained_vector_log_v3f32() #0 { | ||||
; S390X-LABEL: constrained_vector_log_v3f32: | ; S390X-LABEL: constrained_vector_log_v3f32: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -176 | ; S390X-NEXT: aghi %r15, -176 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 336 | ; S390X-NEXT: .cfi_def_cfa_offset 336 | ||||
; S390X-NEXT: std %f8, 168(%r15) # 8-byte Folded Spill | ; S390X-NEXT: std %f8, 168(%r15) # 8-byte Folded Spill | ||||
▲ Show 20 Lines • Show All 48 Lines • ▼ Show 20 Lines | |||||
; SZ13-NEXT: vrepf %v1, %v1, 0 | ; SZ13-NEXT: vrepf %v1, %v1, 0 | ||||
; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ||||
; SZ13-NEXT: lmg %r14, %r15, 304(%r15) | ; SZ13-NEXT: lmg %r14, %r15, 304(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%log = call <3 x float> @llvm.experimental.constrained.log.v3f32( | %log = call <3 x float> @llvm.experimental.constrained.log.v3f32( | ||||
<3 x float> <float 42.0, float 43.0, float 44.0>, | <3 x float> <float 42.0, float 43.0, float 44.0>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <3 x float> %log | ret <3 x float> %log | ||||
} | } | ||||
define void @constrained_vector_log_v3f64(<3 x double>* %a) { | define void @constrained_vector_log_v3f64(<3 x double>* %a) #0 { | ||||
; S390X-LABEL: constrained_vector_log_v3f64: | ; S390X-LABEL: constrained_vector_log_v3f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r13, %r15, 104(%r15) | ; S390X-NEXT: stmg %r13, %r15, 104(%r15) | ||||
; S390X-NEXT: .cfi_offset %r13, -56 | ; S390X-NEXT: .cfi_offset %r13, -56 | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -184 | ; S390X-NEXT: aghi %r15, -184 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 344 | ; S390X-NEXT: .cfi_def_cfa_offset 344 | ||||
▲ Show 20 Lines • Show All 57 Lines • ▼ Show 20 Lines | |||||
; SZ13-NEXT: vst %v0, 0(%r13), 4 | ; SZ13-NEXT: vst %v0, 0(%r13), 4 | ||||
; SZ13-NEXT: lmg %r13, %r15, 304(%r15) | ; SZ13-NEXT: lmg %r13, %r15, 304(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%b = load <3 x double>, <3 x double>* %a | %b = load <3 x double>, <3 x double>* %a | ||||
%log = call <3 x double> @llvm.experimental.constrained.log.v3f64( | %log = call <3 x double> @llvm.experimental.constrained.log.v3f64( | ||||
<3 x double> %b, | <3 x double> %b, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
store <3 x double> %log, <3 x double>* %a | store <3 x double> %log, <3 x double>* %a | ||||
ret void | ret void | ||||
} | } | ||||
define <4 x double> @constrained_vector_log_v4f64() { | define <4 x double> @constrained_vector_log_v4f64() #0 { | ||||
; S390X-LABEL: constrained_vector_log_v4f64: | ; S390X-LABEL: constrained_vector_log_v4f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -184 | ; S390X-NEXT: aghi %r15, -184 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 344 | ; S390X-NEXT: .cfi_def_cfa_offset 344 | ||||
; S390X-NEXT: std %f8, 176(%r15) # 8-byte Folded Spill | ; S390X-NEXT: std %f8, 176(%r15) # 8-byte Folded Spill | ||||
▲ Show 20 Lines • Show All 63 Lines • ▼ Show 20 Lines | |||||
; SZ13-NEXT: vmrhg %v26, %v0, %v1 | ; SZ13-NEXT: vmrhg %v26, %v0, %v1 | ||||
; SZ13-NEXT: lmg %r14, %r15, 304(%r15) | ; SZ13-NEXT: lmg %r14, %r15, 304(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%log = call <4 x double> @llvm.experimental.constrained.log.v4f64( | %log = call <4 x double> @llvm.experimental.constrained.log.v4f64( | ||||
<4 x double> <double 42.0, double 42.1, | <4 x double> <double 42.0, double 42.1, | ||||
double 42.2, double 42.3>, | double 42.2, double 42.3>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <4 x double> %log | ret <4 x double> %log | ||||
} | } | ||||
define <1 x float> @constrained_vector_log10_v1f32() { | define <1 x float> @constrained_vector_log10_v1f32() #0 { | ||||
; S390X-LABEL: constrained_vector_log10_v1f32: | ; S390X-LABEL: constrained_vector_log10_v1f32: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -160 | ; S390X-NEXT: aghi %r15, -160 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 320 | ; S390X-NEXT: .cfi_def_cfa_offset 320 | ||||
; S390X-NEXT: larl %r1, .LCPI65_0 | ; S390X-NEXT: larl %r1, .LCPI65_0 | ||||
Show All 15 Lines | |||||
; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 | ; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 | ||||
; SZ13-NEXT: vlr %v24, %v0 | ; SZ13-NEXT: vlr %v24, %v0 | ||||
; SZ13-NEXT: lmg %r14, %r15, 272(%r15) | ; SZ13-NEXT: lmg %r14, %r15, 272(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%log10 = call <1 x float> @llvm.experimental.constrained.log10.v1f32( | %log10 = call <1 x float> @llvm.experimental.constrained.log10.v1f32( | ||||
<1 x float> <float 42.0>, | <1 x float> <float 42.0>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <1 x float> %log10 | ret <1 x float> %log10 | ||||
} | } | ||||
define <2 x double> @constrained_vector_log10_v2f64() { | define <2 x double> @constrained_vector_log10_v2f64() #0 { | ||||
; S390X-LABEL: constrained_vector_log10_v2f64: | ; S390X-LABEL: constrained_vector_log10_v2f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -168 | ; S390X-NEXT: aghi %r15, -168 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 328 | ; S390X-NEXT: .cfi_def_cfa_offset 328 | ||||
; S390X-NEXT: std %f8, 160(%r15) # 8-byte Folded Spill | ; S390X-NEXT: std %f8, 160(%r15) # 8-byte Folded Spill | ||||
Show All 31 Lines | |||||
; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 | ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 | ||||
; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ||||
; SZ13-NEXT: lmg %r14, %r15, 288(%r15) | ; SZ13-NEXT: lmg %r14, %r15, 288(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%log10 = call <2 x double> @llvm.experimental.constrained.log10.v2f64( | %log10 = call <2 x double> @llvm.experimental.constrained.log10.v2f64( | ||||
<2 x double> <double 42.0, double 42.1>, | <2 x double> <double 42.0, double 42.1>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <2 x double> %log10 | ret <2 x double> %log10 | ||||
} | } | ||||
define <3 x float> @constrained_vector_log10_v3f32() { | define <3 x float> @constrained_vector_log10_v3f32() #0 { | ||||
; S390X-LABEL: constrained_vector_log10_v3f32: | ; S390X-LABEL: constrained_vector_log10_v3f32: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -176 | ; S390X-NEXT: aghi %r15, -176 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 336 | ; S390X-NEXT: .cfi_def_cfa_offset 336 | ||||
; S390X-NEXT: std %f8, 168(%r15) # 8-byte Folded Spill | ; S390X-NEXT: std %f8, 168(%r15) # 8-byte Folded Spill | ||||
▲ Show 20 Lines • Show All 48 Lines • ▼ Show 20 Lines | |||||
; SZ13-NEXT: vrepf %v1, %v1, 0 | ; SZ13-NEXT: vrepf %v1, %v1, 0 | ||||
; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ||||
; SZ13-NEXT: lmg %r14, %r15, 304(%r15) | ; SZ13-NEXT: lmg %r14, %r15, 304(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%log10 = call <3 x float> @llvm.experimental.constrained.log10.v3f32( | %log10 = call <3 x float> @llvm.experimental.constrained.log10.v3f32( | ||||
<3 x float> <float 42.0, float 43.0, float 44.0>, | <3 x float> <float 42.0, float 43.0, float 44.0>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <3 x float> %log10 | ret <3 x float> %log10 | ||||
} | } | ||||
define void @constrained_vector_log10_v3f64(<3 x double>* %a) { | define void @constrained_vector_log10_v3f64(<3 x double>* %a) #0 { | ||||
; S390X-LABEL: constrained_vector_log10_v3f64: | ; S390X-LABEL: constrained_vector_log10_v3f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r13, %r15, 104(%r15) | ; S390X-NEXT: stmg %r13, %r15, 104(%r15) | ||||
; S390X-NEXT: .cfi_offset %r13, -56 | ; S390X-NEXT: .cfi_offset %r13, -56 | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -184 | ; S390X-NEXT: aghi %r15, -184 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 344 | ; S390X-NEXT: .cfi_def_cfa_offset 344 | ||||
▲ Show 20 Lines • Show All 57 Lines • ▼ Show 20 Lines | |||||
; SZ13-NEXT: vst %v0, 0(%r13), 4 | ; SZ13-NEXT: vst %v0, 0(%r13), 4 | ||||
; SZ13-NEXT: lmg %r13, %r15, 304(%r15) | ; SZ13-NEXT: lmg %r13, %r15, 304(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%b = load <3 x double>, <3 x double>* %a | %b = load <3 x double>, <3 x double>* %a | ||||
%log10 = call <3 x double> @llvm.experimental.constrained.log10.v3f64( | %log10 = call <3 x double> @llvm.experimental.constrained.log10.v3f64( | ||||
<3 x double> %b, | <3 x double> %b, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
store <3 x double> %log10, <3 x double>* %a | store <3 x double> %log10, <3 x double>* %a | ||||
ret void | ret void | ||||
} | } | ||||
define <4 x double> @constrained_vector_log10_v4f64() { | define <4 x double> @constrained_vector_log10_v4f64() #0 { | ||||
; S390X-LABEL: constrained_vector_log10_v4f64: | ; S390X-LABEL: constrained_vector_log10_v4f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -184 | ; S390X-NEXT: aghi %r15, -184 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 344 | ; S390X-NEXT: .cfi_def_cfa_offset 344 | ||||
; S390X-NEXT: std %f8, 176(%r15) # 8-byte Folded Spill | ; S390X-NEXT: std %f8, 176(%r15) # 8-byte Folded Spill | ||||
▲ Show 20 Lines • Show All 63 Lines • ▼ Show 20 Lines | |||||
; SZ13-NEXT: vmrhg %v26, %v0, %v1 | ; SZ13-NEXT: vmrhg %v26, %v0, %v1 | ||||
; SZ13-NEXT: lmg %r14, %r15, 304(%r15) | ; SZ13-NEXT: lmg %r14, %r15, 304(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%log10 = call <4 x double> @llvm.experimental.constrained.log10.v4f64( | %log10 = call <4 x double> @llvm.experimental.constrained.log10.v4f64( | ||||
<4 x double> <double 42.0, double 42.1, | <4 x double> <double 42.0, double 42.1, | ||||
double 42.2, double 42.3>, | double 42.2, double 42.3>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <4 x double> %log10 | ret <4 x double> %log10 | ||||
} | } | ||||
define <1 x float> @constrained_vector_log2_v1f32() { | define <1 x float> @constrained_vector_log2_v1f32() #0 { | ||||
; S390X-LABEL: constrained_vector_log2_v1f32: | ; S390X-LABEL: constrained_vector_log2_v1f32: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -160 | ; S390X-NEXT: aghi %r15, -160 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 320 | ; S390X-NEXT: .cfi_def_cfa_offset 320 | ||||
; S390X-NEXT: larl %r1, .LCPI70_0 | ; S390X-NEXT: larl %r1, .LCPI70_0 | ||||
Show All 15 Lines | |||||
; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 | ; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 | ||||
; SZ13-NEXT: vlr %v24, %v0 | ; SZ13-NEXT: vlr %v24, %v0 | ||||
; SZ13-NEXT: lmg %r14, %r15, 272(%r15) | ; SZ13-NEXT: lmg %r14, %r15, 272(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%log2 = call <1 x float> @llvm.experimental.constrained.log2.v1f32( | %log2 = call <1 x float> @llvm.experimental.constrained.log2.v1f32( | ||||
<1 x float> <float 42.0>, | <1 x float> <float 42.0>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <1 x float> %log2 | ret <1 x float> %log2 | ||||
} | } | ||||
define <2 x double> @constrained_vector_log2_v2f64() { | define <2 x double> @constrained_vector_log2_v2f64() #0 { | ||||
; S390X-LABEL: constrained_vector_log2_v2f64: | ; S390X-LABEL: constrained_vector_log2_v2f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -168 | ; S390X-NEXT: aghi %r15, -168 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 328 | ; S390X-NEXT: .cfi_def_cfa_offset 328 | ||||
; S390X-NEXT: std %f8, 160(%r15) # 8-byte Folded Spill | ; S390X-NEXT: std %f8, 160(%r15) # 8-byte Folded Spill | ||||
Show All 31 Lines | |||||
; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 | ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 | ||||
; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ||||
; SZ13-NEXT: lmg %r14, %r15, 288(%r15) | ; SZ13-NEXT: lmg %r14, %r15, 288(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%log2 = call <2 x double> @llvm.experimental.constrained.log2.v2f64( | %log2 = call <2 x double> @llvm.experimental.constrained.log2.v2f64( | ||||
<2 x double> <double 42.0, double 42.1>, | <2 x double> <double 42.0, double 42.1>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <2 x double> %log2 | ret <2 x double> %log2 | ||||
} | } | ||||
define <3 x float> @constrained_vector_log2_v3f32() { | define <3 x float> @constrained_vector_log2_v3f32() #0 { | ||||
; S390X-LABEL: constrained_vector_log2_v3f32: | ; S390X-LABEL: constrained_vector_log2_v3f32: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -176 | ; S390X-NEXT: aghi %r15, -176 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 336 | ; S390X-NEXT: .cfi_def_cfa_offset 336 | ||||
; S390X-NEXT: std %f8, 168(%r15) # 8-byte Folded Spill | ; S390X-NEXT: std %f8, 168(%r15) # 8-byte Folded Spill | ||||
▲ Show 20 Lines • Show All 48 Lines • ▼ Show 20 Lines | |||||
; SZ13-NEXT: vrepf %v1, %v1, 0 | ; SZ13-NEXT: vrepf %v1, %v1, 0 | ||||
; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ||||
; SZ13-NEXT: lmg %r14, %r15, 304(%r15) | ; SZ13-NEXT: lmg %r14, %r15, 304(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%log2 = call <3 x float> @llvm.experimental.constrained.log2.v3f32( | %log2 = call <3 x float> @llvm.experimental.constrained.log2.v3f32( | ||||
<3 x float> <float 42.0, float 43.0, float 44.0>, | <3 x float> <float 42.0, float 43.0, float 44.0>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <3 x float> %log2 | ret <3 x float> %log2 | ||||
} | } | ||||
define void @constrained_vector_log2_v3f64(<3 x double>* %a) { | define void @constrained_vector_log2_v3f64(<3 x double>* %a) #0 { | ||||
; S390X-LABEL: constrained_vector_log2_v3f64: | ; S390X-LABEL: constrained_vector_log2_v3f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r13, %r15, 104(%r15) | ; S390X-NEXT: stmg %r13, %r15, 104(%r15) | ||||
; S390X-NEXT: .cfi_offset %r13, -56 | ; S390X-NEXT: .cfi_offset %r13, -56 | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -184 | ; S390X-NEXT: aghi %r15, -184 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 344 | ; S390X-NEXT: .cfi_def_cfa_offset 344 | ||||
▲ Show 20 Lines • Show All 57 Lines • ▼ Show 20 Lines | |||||
; SZ13-NEXT: vst %v0, 0(%r13), 4 | ; SZ13-NEXT: vst %v0, 0(%r13), 4 | ||||
; SZ13-NEXT: lmg %r13, %r15, 304(%r15) | ; SZ13-NEXT: lmg %r13, %r15, 304(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%b = load <3 x double>, <3 x double>* %a | %b = load <3 x double>, <3 x double>* %a | ||||
%log2 = call <3 x double> @llvm.experimental.constrained.log2.v3f64( | %log2 = call <3 x double> @llvm.experimental.constrained.log2.v3f64( | ||||
<3 x double> %b, | <3 x double> %b, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
store <3 x double> %log2, <3 x double>* %a | store <3 x double> %log2, <3 x double>* %a | ||||
ret void | ret void | ||||
} | } | ||||
define <4 x double> @constrained_vector_log2_v4f64() { | define <4 x double> @constrained_vector_log2_v4f64() #0 { | ||||
; S390X-LABEL: constrained_vector_log2_v4f64: | ; S390X-LABEL: constrained_vector_log2_v4f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -184 | ; S390X-NEXT: aghi %r15, -184 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 344 | ; S390X-NEXT: .cfi_def_cfa_offset 344 | ||||
; S390X-NEXT: std %f8, 176(%r15) # 8-byte Folded Spill | ; S390X-NEXT: std %f8, 176(%r15) # 8-byte Folded Spill | ||||
▲ Show 20 Lines • Show All 63 Lines • ▼ Show 20 Lines | |||||
; SZ13-NEXT: vmrhg %v26, %v0, %v1 | ; SZ13-NEXT: vmrhg %v26, %v0, %v1 | ||||
; SZ13-NEXT: lmg %r14, %r15, 304(%r15) | ; SZ13-NEXT: lmg %r14, %r15, 304(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%log2 = call <4 x double> @llvm.experimental.constrained.log2.v4f64( | %log2 = call <4 x double> @llvm.experimental.constrained.log2.v4f64( | ||||
<4 x double> <double 42.0, double 42.1, | <4 x double> <double 42.0, double 42.1, | ||||
double 42.2, double 42.3>, | double 42.2, double 42.3>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <4 x double> %log2 | ret <4 x double> %log2 | ||||
} | } | ||||
define <1 x float> @constrained_vector_rint_v1f32() { | define <1 x float> @constrained_vector_rint_v1f32() #0 { | ||||
; S390X-LABEL: constrained_vector_rint_v1f32: | ; S390X-LABEL: constrained_vector_rint_v1f32: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: larl %r1, .LCPI75_0 | ; S390X-NEXT: larl %r1, .LCPI75_0 | ||||
; S390X-NEXT: le %f0, 0(%r1) | ; S390X-NEXT: le %f0, 0(%r1) | ||||
; S390X-NEXT: fiebr %f0, 0, %f0 | ; S390X-NEXT: fiebr %f0, 0, %f0 | ||||
; S390X-NEXT: br %r14 | ; S390X-NEXT: br %r14 | ||||
; | ; | ||||
; SZ13-LABEL: constrained_vector_rint_v1f32: | ; SZ13-LABEL: constrained_vector_rint_v1f32: | ||||
; SZ13: # %bb.0: # %entry | ; SZ13: # %bb.0: # %entry | ||||
; SZ13-NEXT: larl %r1, .LCPI75_0 | ; SZ13-NEXT: larl %r1, .LCPI75_0 | ||||
; SZ13-NEXT: lde %f0, 0(%r1) | ; SZ13-NEXT: lde %f0, 0(%r1) | ||||
; SZ13-NEXT: fiebr %f0, 0, %f0 | ; SZ13-NEXT: fiebr %f0, 0, %f0 | ||||
; SZ13-NEXT: vlr %v24, %v0 | ; SZ13-NEXT: vlr %v24, %v0 | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%rint = call <1 x float> @llvm.experimental.constrained.rint.v1f32( | %rint = call <1 x float> @llvm.experimental.constrained.rint.v1f32( | ||||
<1 x float> <float 42.0>, | <1 x float> <float 42.0>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <1 x float> %rint | ret <1 x float> %rint | ||||
} | } | ||||
define <2 x double> @constrained_vector_rint_v2f64() { | define <2 x double> @constrained_vector_rint_v2f64() #0 { | ||||
; S390X-LABEL: constrained_vector_rint_v2f64: | ; S390X-LABEL: constrained_vector_rint_v2f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: larl %r1, .LCPI76_0 | ; S390X-NEXT: larl %r1, .LCPI76_0 | ||||
; S390X-NEXT: ldeb %f0, 0(%r1) | ; S390X-NEXT: ldeb %f0, 0(%r1) | ||||
; S390X-NEXT: larl %r1, .LCPI76_1 | ; S390X-NEXT: larl %r1, .LCPI76_1 | ||||
; S390X-NEXT: ld %f1, 0(%r1) | ; S390X-NEXT: ld %f1, 0(%r1) | ||||
; S390X-NEXT: fidbr %f2, 0, %f0 | ; S390X-NEXT: fidbr %f2, 0, %f0 | ||||
; S390X-NEXT: fidbr %f0, 0, %f1 | ; S390X-NEXT: fidbr %f0, 0, %f1 | ||||
; S390X-NEXT: br %r14 | ; S390X-NEXT: br %r14 | ||||
; | ; | ||||
; SZ13-LABEL: constrained_vector_rint_v2f64: | ; SZ13-LABEL: constrained_vector_rint_v2f64: | ||||
; SZ13: # %bb.0: # %entry | ; SZ13: # %bb.0: # %entry | ||||
; SZ13-NEXT: larl %r1, .LCPI76_0 | ; SZ13-NEXT: larl %r1, .LCPI76_0 | ||||
; SZ13-NEXT: vl %v0, 0(%r1), 3 | ; SZ13-NEXT: vl %v0, 0(%r1), 3 | ||||
; SZ13-NEXT: vfidb %v24, %v0, 0, 0 | ; SZ13-NEXT: vfidb %v24, %v0, 0, 0 | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%rint = call <2 x double> @llvm.experimental.constrained.rint.v2f64( | %rint = call <2 x double> @llvm.experimental.constrained.rint.v2f64( | ||||
<2 x double> <double 42.1, double 42.0>, | <2 x double> <double 42.1, double 42.0>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <2 x double> %rint | ret <2 x double> %rint | ||||
} | } | ||||
define <3 x float> @constrained_vector_rint_v3f32() { | define <3 x float> @constrained_vector_rint_v3f32() #0 { | ||||
; S390X-LABEL: constrained_vector_rint_v3f32: | ; S390X-LABEL: constrained_vector_rint_v3f32: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: larl %r1, .LCPI77_0 | ; S390X-NEXT: larl %r1, .LCPI77_0 | ||||
; S390X-NEXT: le %f0, 0(%r1) | ; S390X-NEXT: le %f0, 0(%r1) | ||||
; S390X-NEXT: larl %r1, .LCPI77_1 | ; S390X-NEXT: larl %r1, .LCPI77_1 | ||||
; S390X-NEXT: le %f1, 0(%r1) | ; S390X-NEXT: le %f1, 0(%r1) | ||||
; S390X-NEXT: larl %r1, .LCPI77_2 | ; S390X-NEXT: larl %r1, .LCPI77_2 | ||||
; S390X-NEXT: le %f3, 0(%r1) | ; S390X-NEXT: le %f3, 0(%r1) | ||||
Show All 16 Lines | |||||
; SZ13-NEXT: vmrhf %v1, %v1, %v2 | ; SZ13-NEXT: vmrhf %v1, %v1, %v2 | ||||
; SZ13-NEXT: vrepf %v0, %v0, 0 | ; SZ13-NEXT: vrepf %v0, %v0, 0 | ||||
; SZ13-NEXT: vmrhg %v24, %v1, %v0 | ; SZ13-NEXT: vmrhg %v24, %v1, %v0 | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%rint = call <3 x float> @llvm.experimental.constrained.rint.v3f32( | %rint = call <3 x float> @llvm.experimental.constrained.rint.v3f32( | ||||
<3 x float> <float 42.0, float 43.0, float 44.0>, | <3 x float> <float 42.0, float 43.0, float 44.0>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <3 x float> %rint | ret <3 x float> %rint | ||||
} | } | ||||
define void @constrained_vector_rint_v3f64(<3 x double>* %a) { | define void @constrained_vector_rint_v3f64(<3 x double>* %a) #0 { | ||||
; S390X-LABEL: constrained_vector_rint_v3f64: | ; S390X-LABEL: constrained_vector_rint_v3f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: ld %f0, 0(%r2) | ; S390X-NEXT: ld %f0, 0(%r2) | ||||
; S390X-NEXT: ld %f1, 8(%r2) | ; S390X-NEXT: ld %f1, 8(%r2) | ||||
; S390X-NEXT: ld %f2, 16(%r2) | ; S390X-NEXT: ld %f2, 16(%r2) | ||||
; S390X-NEXT: fidbr %f0, 0, %f0 | ; S390X-NEXT: fidbr %f0, 0, %f0 | ||||
; S390X-NEXT: fidbr %f1, 0, %f1 | ; S390X-NEXT: fidbr %f1, 0, %f1 | ||||
; S390X-NEXT: fidbr %f2, 0, %f2 | ; S390X-NEXT: fidbr %f2, 0, %f2 | ||||
Show All 11 Lines | |||||
; SZ13-NEXT: std %f0, 16(%r2) | ; SZ13-NEXT: std %f0, 16(%r2) | ||||
; SZ13-NEXT: vst %v1, 0(%r2), 4 | ; SZ13-NEXT: vst %v1, 0(%r2), 4 | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%b = load <3 x double>, <3 x double>* %a | %b = load <3 x double>, <3 x double>* %a | ||||
%rint = call <3 x double> @llvm.experimental.constrained.rint.v3f64( | %rint = call <3 x double> @llvm.experimental.constrained.rint.v3f64( | ||||
<3 x double> %b, | <3 x double> %b, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
store <3 x double> %rint, <3 x double>* %a | store <3 x double> %rint, <3 x double>* %a | ||||
ret void | ret void | ||||
} | } | ||||
define <4 x double> @constrained_vector_rint_v4f64() { | define <4 x double> @constrained_vector_rint_v4f64() #0 { | ||||
; S390X-LABEL: constrained_vector_rint_v4f64: | ; S390X-LABEL: constrained_vector_rint_v4f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: larl %r1, .LCPI79_0 | ; S390X-NEXT: larl %r1, .LCPI79_0 | ||||
; S390X-NEXT: ld %f0, 0(%r1) | ; S390X-NEXT: ld %f0, 0(%r1) | ||||
; S390X-NEXT: larl %r1, .LCPI79_1 | ; S390X-NEXT: larl %r1, .LCPI79_1 | ||||
; S390X-NEXT: ld %f1, 0(%r1) | ; S390X-NEXT: ld %f1, 0(%r1) | ||||
; S390X-NEXT: larl %r1, .LCPI79_2 | ; S390X-NEXT: larl %r1, .LCPI79_2 | ||||
; S390X-NEXT: ld %f2, 0(%r1) | ; S390X-NEXT: ld %f2, 0(%r1) | ||||
Show All 14 Lines | |||||
; SZ13-NEXT: vl %v0, 0(%r1), 3 | ; SZ13-NEXT: vl %v0, 0(%r1), 3 | ||||
; SZ13-NEXT: vfidb %v26, %v0, 0, 0 | ; SZ13-NEXT: vfidb %v26, %v0, 0, 0 | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%rint = call <4 x double> @llvm.experimental.constrained.rint.v4f64( | %rint = call <4 x double> @llvm.experimental.constrained.rint.v4f64( | ||||
<4 x double> <double 42.1, double 42.2, | <4 x double> <double 42.1, double 42.2, | ||||
double 42.3, double 42.4>, | double 42.3, double 42.4>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <4 x double> %rint | ret <4 x double> %rint | ||||
} | } | ||||
define <1 x float> @constrained_vector_nearbyint_v1f32() { | define <1 x float> @constrained_vector_nearbyint_v1f32() #0 { | ||||
; S390X-LABEL: constrained_vector_nearbyint_v1f32: | ; S390X-LABEL: constrained_vector_nearbyint_v1f32: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -160 | ; S390X-NEXT: aghi %r15, -160 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 320 | ; S390X-NEXT: .cfi_def_cfa_offset 320 | ||||
; S390X-NEXT: larl %r1, .LCPI80_0 | ; S390X-NEXT: larl %r1, .LCPI80_0 | ||||
; S390X-NEXT: le %f0, 0(%r1) | ; S390X-NEXT: le %f0, 0(%r1) | ||||
; S390X-NEXT: brasl %r14, nearbyintf@PLT | ; S390X-NEXT: brasl %r14, nearbyintf@PLT | ||||
; S390X-NEXT: lmg %r14, %r15, 272(%r15) | ; S390X-NEXT: lmg %r14, %r15, 272(%r15) | ||||
; S390X-NEXT: br %r14 | ; S390X-NEXT: br %r14 | ||||
; | ; | ||||
; SZ13-LABEL: constrained_vector_nearbyint_v1f32: | ; SZ13-LABEL: constrained_vector_nearbyint_v1f32: | ||||
; SZ13: # %bb.0: # %entry | ; SZ13: # %bb.0: # %entry | ||||
; SZ13-NEXT: larl %r1, .LCPI80_0 | ; SZ13-NEXT: larl %r1, .LCPI80_0 | ||||
; SZ13-NEXT: lde %f0, 0(%r1) | ; SZ13-NEXT: lde %f0, 0(%r1) | ||||
; SZ13-NEXT: fiebra %f0, 0, %f0, 4 | ; SZ13-NEXT: fiebra %f0, 0, %f0, 4 | ||||
; SZ13-NEXT: vlr %v24, %v0 | ; SZ13-NEXT: vlr %v24, %v0 | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%nearby = call <1 x float> @llvm.experimental.constrained.nearbyint.v1f32( | %nearby = call <1 x float> @llvm.experimental.constrained.nearbyint.v1f32( | ||||
<1 x float> <float 42.0>, | <1 x float> <float 42.0>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <1 x float> %nearby | ret <1 x float> %nearby | ||||
} | } | ||||
define <2 x double> @constrained_vector_nearbyint_v2f64() { | define <2 x double> @constrained_vector_nearbyint_v2f64() #0 { | ||||
; S390X-LABEL: constrained_vector_nearbyint_v2f64: | ; S390X-LABEL: constrained_vector_nearbyint_v2f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -168 | ; S390X-NEXT: aghi %r15, -168 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 328 | ; S390X-NEXT: .cfi_def_cfa_offset 328 | ||||
; S390X-NEXT: std %f8, 160(%r15) # 8-byte Folded Spill | ; S390X-NEXT: std %f8, 160(%r15) # 8-byte Folded Spill | ||||
Show All 17 Lines | |||||
; SZ13-NEXT: larl %r1, .LCPI81_0 | ; SZ13-NEXT: larl %r1, .LCPI81_0 | ||||
; SZ13-NEXT: vl %v0, 0(%r1), 3 | ; SZ13-NEXT: vl %v0, 0(%r1), 3 | ||||
; SZ13-NEXT: vfidb %v24, %v0, 4, 0 | ; SZ13-NEXT: vfidb %v24, %v0, 4, 0 | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%nearby = call <2 x double> @llvm.experimental.constrained.nearbyint.v2f64( | %nearby = call <2 x double> @llvm.experimental.constrained.nearbyint.v2f64( | ||||
<2 x double> <double 42.1, double 42.0>, | <2 x double> <double 42.1, double 42.0>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <2 x double> %nearby | ret <2 x double> %nearby | ||||
} | } | ||||
define <3 x float> @constrained_vector_nearbyint_v3f32() { | define <3 x float> @constrained_vector_nearbyint_v3f32() #0 { | ||||
; S390X-LABEL: constrained_vector_nearbyint_v3f32: | ; S390X-LABEL: constrained_vector_nearbyint_v3f32: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -176 | ; S390X-NEXT: aghi %r15, -176 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 336 | ; S390X-NEXT: .cfi_def_cfa_offset 336 | ||||
; S390X-NEXT: std %f8, 168(%r15) # 8-byte Folded Spill | ; S390X-NEXT: std %f8, 168(%r15) # 8-byte Folded Spill | ||||
Show All 35 Lines | |||||
; SZ13-NEXT: vmrhf %v1, %v1, %v2 | ; SZ13-NEXT: vmrhf %v1, %v1, %v2 | ||||
; SZ13-NEXT: vrepf %v0, %v0, 0 | ; SZ13-NEXT: vrepf %v0, %v0, 0 | ||||
; SZ13-NEXT: vmrhg %v24, %v1, %v0 | ; SZ13-NEXT: vmrhg %v24, %v1, %v0 | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%nearby = call <3 x float> @llvm.experimental.constrained.nearbyint.v3f32( | %nearby = call <3 x float> @llvm.experimental.constrained.nearbyint.v3f32( | ||||
<3 x float> <float 42.0, float 43.0, float 44.0>, | <3 x float> <float 42.0, float 43.0, float 44.0>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <3 x float> %nearby | ret <3 x float> %nearby | ||||
} | } | ||||
define void @constrained_vector_nearbyint_v3f64(<3 x double>* %a) { | define void @constrained_vector_nearbyint_v3f64(<3 x double>* %a) #0 { | ||||
; S390X-LABEL: constrained_vector_nearbyint_v3f64: | ; S390X-LABEL: constrained_vector_nearbyint_v3f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r13, %r15, 104(%r15) | ; S390X-NEXT: stmg %r13, %r15, 104(%r15) | ||||
; S390X-NEXT: .cfi_offset %r13, -56 | ; S390X-NEXT: .cfi_offset %r13, -56 | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -184 | ; S390X-NEXT: aghi %r15, -184 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 344 | ; S390X-NEXT: .cfi_def_cfa_offset 344 | ||||
Show All 32 Lines | |||||
; SZ13-NEXT: std %f0, 16(%r2) | ; SZ13-NEXT: std %f0, 16(%r2) | ||||
; SZ13-NEXT: vst %v1, 0(%r2), 4 | ; SZ13-NEXT: vst %v1, 0(%r2), 4 | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%b = load <3 x double>, <3 x double>* %a | %b = load <3 x double>, <3 x double>* %a | ||||
%nearby = call <3 x double> @llvm.experimental.constrained.nearbyint.v3f64( | %nearby = call <3 x double> @llvm.experimental.constrained.nearbyint.v3f64( | ||||
<3 x double> %b, | <3 x double> %b, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
store <3 x double> %nearby, <3 x double>* %a | store <3 x double> %nearby, <3 x double>* %a | ||||
ret void | ret void | ||||
} | } | ||||
define <4 x double> @constrained_vector_nearbyint_v4f64() { | define <4 x double> @constrained_vector_nearbyint_v4f64() #0 { | ||||
; S390X-LABEL: constrained_vector_nearbyint_v4f64: | ; S390X-LABEL: constrained_vector_nearbyint_v4f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -184 | ; S390X-NEXT: aghi %r15, -184 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 344 | ; S390X-NEXT: .cfi_def_cfa_offset 344 | ||||
; S390X-NEXT: std %f8, 176(%r15) # 8-byte Folded Spill | ; S390X-NEXT: std %f8, 176(%r15) # 8-byte Folded Spill | ||||
Show All 39 Lines | |||||
; SZ13-NEXT: vl %v0, 0(%r1), 3 | ; SZ13-NEXT: vl %v0, 0(%r1), 3 | ||||
; SZ13-NEXT: vfidb %v26, %v0, 4, 0 | ; SZ13-NEXT: vfidb %v26, %v0, 4, 0 | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%nearby = call <4 x double> @llvm.experimental.constrained.nearbyint.v4f64( | %nearby = call <4 x double> @llvm.experimental.constrained.nearbyint.v4f64( | ||||
<4 x double> <double 42.1, double 42.2, | <4 x double> <double 42.1, double 42.2, | ||||
double 42.3, double 42.4>, | double 42.3, double 42.4>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <4 x double> %nearby | ret <4 x double> %nearby | ||||
} | } | ||||
define <1 x float> @constrained_vector_maxnum_v1f32() { | define <1 x float> @constrained_vector_maxnum_v1f32() #0 { | ||||
; S390X-LABEL: constrained_vector_maxnum_v1f32: | ; S390X-LABEL: constrained_vector_maxnum_v1f32: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -160 | ; S390X-NEXT: aghi %r15, -160 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 320 | ; S390X-NEXT: .cfi_def_cfa_offset 320 | ||||
; S390X-NEXT: larl %r1, .LCPI85_0 | ; S390X-NEXT: larl %r1, .LCPI85_0 | ||||
Show All 19 Lines | |||||
; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 | ; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 | ||||
; SZ13-NEXT: vlr %v24, %v0 | ; SZ13-NEXT: vlr %v24, %v0 | ||||
; SZ13-NEXT: lmg %r14, %r15, 272(%r15) | ; SZ13-NEXT: lmg %r14, %r15, 272(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%max = call <1 x float> @llvm.experimental.constrained.maxnum.v1f32( | %max = call <1 x float> @llvm.experimental.constrained.maxnum.v1f32( | ||||
<1 x float> <float 42.0>, <1 x float> <float 41.0>, | <1 x float> <float 42.0>, <1 x float> <float 41.0>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <1 x float> %max | ret <1 x float> %max | ||||
} | } | ||||
define <2 x double> @constrained_vector_maxnum_v2f64() { | define <2 x double> @constrained_vector_maxnum_v2f64() #0 { | ||||
; S390X-LABEL: constrained_vector_maxnum_v2f64: | ; S390X-LABEL: constrained_vector_maxnum_v2f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -168 | ; S390X-NEXT: aghi %r15, -168 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 328 | ; S390X-NEXT: .cfi_def_cfa_offset 328 | ||||
; S390X-NEXT: std %f8, 160(%r15) # 8-byte Folded Spill | ; S390X-NEXT: std %f8, 160(%r15) # 8-byte Folded Spill | ||||
Show All 40 Lines | |||||
; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ||||
; SZ13-NEXT: lmg %r14, %r15, 288(%r15) | ; SZ13-NEXT: lmg %r14, %r15, 288(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%max = call <2 x double> @llvm.experimental.constrained.maxnum.v2f64( | %max = call <2 x double> @llvm.experimental.constrained.maxnum.v2f64( | ||||
<2 x double> <double 43.0, double 42.0>, | <2 x double> <double 43.0, double 42.0>, | ||||
<2 x double> <double 41.0, double 40.0>, | <2 x double> <double 41.0, double 40.0>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <2 x double> %max | ret <2 x double> %max | ||||
} | } | ||||
define <3 x float> @constrained_vector_maxnum_v3f32() { | define <3 x float> @constrained_vector_maxnum_v3f32() #0 { | ||||
; S390X-LABEL: constrained_vector_maxnum_v3f32: | ; S390X-LABEL: constrained_vector_maxnum_v3f32: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -184 | ; S390X-NEXT: aghi %r15, -184 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 344 | ; S390X-NEXT: .cfi_def_cfa_offset 344 | ||||
; S390X-NEXT: std %f8, 176(%r15) # 8-byte Folded Spill | ; S390X-NEXT: std %f8, 176(%r15) # 8-byte Folded Spill | ||||
▲ Show 20 Lines • Show All 67 Lines • ▼ Show 20 Lines | |||||
; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ||||
; SZ13-NEXT: lmg %r14, %r15, 312(%r15) | ; SZ13-NEXT: lmg %r14, %r15, 312(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%max = call <3 x float> @llvm.experimental.constrained.maxnum.v3f32( | %max = call <3 x float> @llvm.experimental.constrained.maxnum.v3f32( | ||||
<3 x float> <float 43.0, float 44.0, float 45.0>, | <3 x float> <float 43.0, float 44.0, float 45.0>, | ||||
<3 x float> <float 41.0, float 42.0, float 43.0>, | <3 x float> <float 41.0, float 42.0, float 43.0>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <3 x float> %max | ret <3 x float> %max | ||||
} | } | ||||
define void @constrained_vector_log10_maxnum_v3f64(<3 x double>* %a) { | define void @constrained_vector_log10_maxnum_v3f64(<3 x double>* %a) #0 { | ||||
; S390X-LABEL: constrained_vector_log10_maxnum_v3f64: | ; S390X-LABEL: constrained_vector_log10_maxnum_v3f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r13, %r15, 104(%r15) | ; S390X-NEXT: stmg %r13, %r15, 104(%r15) | ||||
; S390X-NEXT: .cfi_offset %r13, -56 | ; S390X-NEXT: .cfi_offset %r13, -56 | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -184 | ; S390X-NEXT: aghi %r15, -184 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 344 | ; S390X-NEXT: .cfi_def_cfa_offset 344 | ||||
▲ Show 20 Lines • Show All 70 Lines • ▼ Show 20 Lines | |||||
; SZ13-NEXT: lmg %r13, %r15, 304(%r15) | ; SZ13-NEXT: lmg %r13, %r15, 304(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%b = load <3 x double>, <3 x double>* %a | %b = load <3 x double>, <3 x double>* %a | ||||
%max = call <3 x double> @llvm.experimental.constrained.maxnum.v3f64( | %max = call <3 x double> @llvm.experimental.constrained.maxnum.v3f64( | ||||
<3 x double> %b, | <3 x double> %b, | ||||
<3 x double> <double 40.0, double 41.0, double 42.0>, | <3 x double> <double 40.0, double 41.0, double 42.0>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
store <3 x double> %max, <3 x double>* %a | store <3 x double> %max, <3 x double>* %a | ||||
ret void | ret void | ||||
} | } | ||||
define <4 x double> @constrained_vector_maxnum_v4f64() { | define <4 x double> @constrained_vector_maxnum_v4f64() #0 { | ||||
; S390X-LABEL: constrained_vector_maxnum_v4f64: | ; S390X-LABEL: constrained_vector_maxnum_v4f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -184 | ; S390X-NEXT: aghi %r15, -184 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 344 | ; S390X-NEXT: .cfi_def_cfa_offset 344 | ||||
; S390X-NEXT: std %f8, 176(%r15) # 8-byte Folded Spill | ; S390X-NEXT: std %f8, 176(%r15) # 8-byte Folded Spill | ||||
▲ Show 20 Lines • Show All 81 Lines • ▼ Show 20 Lines | |||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%max = call <4 x double> @llvm.experimental.constrained.maxnum.v4f64( | %max = call <4 x double> @llvm.experimental.constrained.maxnum.v4f64( | ||||
<4 x double> <double 44.0, double 45.0, | <4 x double> <double 44.0, double 45.0, | ||||
double 46.0, double 47.0>, | double 46.0, double 47.0>, | ||||
<4 x double> <double 40.0, double 41.0, | <4 x double> <double 40.0, double 41.0, | ||||
double 42.0, double 43.0>, | double 42.0, double 43.0>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <4 x double> %max | ret <4 x double> %max | ||||
} | } | ||||
define <1 x float> @constrained_vector_minnum_v1f32() { | define <1 x float> @constrained_vector_minnum_v1f32() #0 { | ||||
; S390X-LABEL: constrained_vector_minnum_v1f32: | ; S390X-LABEL: constrained_vector_minnum_v1f32: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -160 | ; S390X-NEXT: aghi %r15, -160 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 320 | ; S390X-NEXT: .cfi_def_cfa_offset 320 | ||||
; S390X-NEXT: larl %r1, .LCPI90_0 | ; S390X-NEXT: larl %r1, .LCPI90_0 | ||||
Show All 19 Lines | |||||
; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 | ; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 | ||||
; SZ13-NEXT: vlr %v24, %v0 | ; SZ13-NEXT: vlr %v24, %v0 | ||||
; SZ13-NEXT: lmg %r14, %r15, 272(%r15) | ; SZ13-NEXT: lmg %r14, %r15, 272(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%min = call <1 x float> @llvm.experimental.constrained.minnum.v1f32( | %min = call <1 x float> @llvm.experimental.constrained.minnum.v1f32( | ||||
<1 x float> <float 42.0>, <1 x float> <float 41.0>, | <1 x float> <float 42.0>, <1 x float> <float 41.0>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <1 x float> %min | ret <1 x float> %min | ||||
} | } | ||||
define <2 x double> @constrained_vector_minnum_v2f64() { | define <2 x double> @constrained_vector_minnum_v2f64() #0 { | ||||
; S390X-LABEL: constrained_vector_minnum_v2f64: | ; S390X-LABEL: constrained_vector_minnum_v2f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -168 | ; S390X-NEXT: aghi %r15, -168 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 328 | ; S390X-NEXT: .cfi_def_cfa_offset 328 | ||||
; S390X-NEXT: std %f8, 160(%r15) # 8-byte Folded Spill | ; S390X-NEXT: std %f8, 160(%r15) # 8-byte Folded Spill | ||||
Show All 40 Lines | |||||
; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ||||
; SZ13-NEXT: lmg %r14, %r15, 288(%r15) | ; SZ13-NEXT: lmg %r14, %r15, 288(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%min = call <2 x double> @llvm.experimental.constrained.minnum.v2f64( | %min = call <2 x double> @llvm.experimental.constrained.minnum.v2f64( | ||||
<2 x double> <double 43.0, double 42.0>, | <2 x double> <double 43.0, double 42.0>, | ||||
<2 x double> <double 41.0, double 40.0>, | <2 x double> <double 41.0, double 40.0>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <2 x double> %min | ret <2 x double> %min | ||||
} | } | ||||
define <3 x float> @constrained_vector_minnum_v3f32() { | define <3 x float> @constrained_vector_minnum_v3f32() #0 { | ||||
; S390X-LABEL: constrained_vector_minnum_v3f32: | ; S390X-LABEL: constrained_vector_minnum_v3f32: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -184 | ; S390X-NEXT: aghi %r15, -184 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 344 | ; S390X-NEXT: .cfi_def_cfa_offset 344 | ||||
; S390X-NEXT: std %f8, 176(%r15) # 8-byte Folded Spill | ; S390X-NEXT: std %f8, 176(%r15) # 8-byte Folded Spill | ||||
▲ Show 20 Lines • Show All 67 Lines • ▼ Show 20 Lines | |||||
; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ; SZ13-NEXT: vmrhg %v24, %v0, %v1 | ||||
; SZ13-NEXT: lmg %r14, %r15, 312(%r15) | ; SZ13-NEXT: lmg %r14, %r15, 312(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%min = call <3 x float> @llvm.experimental.constrained.minnum.v3f32( | %min = call <3 x float> @llvm.experimental.constrained.minnum.v3f32( | ||||
<3 x float> <float 43.0, float 44.0, float 45.0>, | <3 x float> <float 43.0, float 44.0, float 45.0>, | ||||
<3 x float> <float 41.0, float 42.0, float 43.0>, | <3 x float> <float 41.0, float 42.0, float 43.0>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <3 x float> %min | ret <3 x float> %min | ||||
} | } | ||||
define void @constrained_vector_minnum_v3f64(<3 x double>* %a) { | define void @constrained_vector_minnum_v3f64(<3 x double>* %a) #0 { | ||||
; S390X-LABEL: constrained_vector_minnum_v3f64: | ; S390X-LABEL: constrained_vector_minnum_v3f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r13, %r15, 104(%r15) | ; S390X-NEXT: stmg %r13, %r15, 104(%r15) | ||||
; S390X-NEXT: .cfi_offset %r13, -56 | ; S390X-NEXT: .cfi_offset %r13, -56 | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -192 | ; S390X-NEXT: aghi %r15, -192 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 352 | ; S390X-NEXT: .cfi_def_cfa_offset 352 | ||||
▲ Show 20 Lines • Show All 74 Lines • ▼ Show 20 Lines | |||||
; SZ13-NEXT: lmg %r13, %r15, 312(%r15) | ; SZ13-NEXT: lmg %r13, %r15, 312(%r15) | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%b = load <3 x double>, <3 x double>* %a | %b = load <3 x double>, <3 x double>* %a | ||||
%min = call <3 x double> @llvm.experimental.constrained.minnum.v3f64( | %min = call <3 x double> @llvm.experimental.constrained.minnum.v3f64( | ||||
<3 x double> %b, | <3 x double> %b, | ||||
<3 x double> <double 3.0, double 3.0, double 3.0>, | <3 x double> <double 3.0, double 3.0, double 3.0>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
store <3 x double> %min, <3 x double>* %a | store <3 x double> %min, <3 x double>* %a | ||||
ret void | ret void | ||||
} | } | ||||
define <4 x double> @constrained_vector_minnum_v4f64() { | define <4 x double> @constrained_vector_minnum_v4f64() #0 { | ||||
; S390X-LABEL: constrained_vector_minnum_v4f64: | ; S390X-LABEL: constrained_vector_minnum_v4f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ; S390X-NEXT: stmg %r14, %r15, 112(%r15) | ||||
; S390X-NEXT: .cfi_offset %r14, -48 | ; S390X-NEXT: .cfi_offset %r14, -48 | ||||
; S390X-NEXT: .cfi_offset %r15, -40 | ; S390X-NEXT: .cfi_offset %r15, -40 | ||||
; S390X-NEXT: aghi %r15, -184 | ; S390X-NEXT: aghi %r15, -184 | ||||
; S390X-NEXT: .cfi_def_cfa_offset 344 | ; S390X-NEXT: .cfi_def_cfa_offset 344 | ||||
; S390X-NEXT: std %f8, 176(%r15) # 8-byte Folded Spill | ; S390X-NEXT: std %f8, 176(%r15) # 8-byte Folded Spill | ||||
▲ Show 20 Lines • Show All 81 Lines • ▼ Show 20 Lines | |||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%min = call <4 x double> @llvm.experimental.constrained.minnum.v4f64( | %min = call <4 x double> @llvm.experimental.constrained.minnum.v4f64( | ||||
<4 x double> <double 44.0, double 45.0, | <4 x double> <double 44.0, double 45.0, | ||||
double 46.0, double 47.0>, | double 46.0, double 47.0>, | ||||
<4 x double> <double 40.0, double 41.0, | <4 x double> <double 40.0, double 41.0, | ||||
double 42.0, double 43.0>, | double 42.0, double 43.0>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <4 x double> %min | ret <4 x double> %min | ||||
} | } | ||||
define <1 x float> @constrained_vector_fptrunc_v1f64() { | define <1 x float> @constrained_vector_fptrunc_v1f64() #0 { | ||||
; S390X-LABEL: constrained_vector_fptrunc_v1f64: | ; S390X-LABEL: constrained_vector_fptrunc_v1f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: larl %r1, .LCPI95_0 | ; S390X-NEXT: larl %r1, .LCPI95_0 | ||||
; S390X-NEXT: ld %f0, 0(%r1) | ; S390X-NEXT: ld %f0, 0(%r1) | ||||
; S390X-NEXT: ledbr %f0, %f0 | ; S390X-NEXT: ledbr %f0, %f0 | ||||
; S390X-NEXT: br %r14 | ; S390X-NEXT: br %r14 | ||||
; | ; | ||||
; SZ13-LABEL: constrained_vector_fptrunc_v1f64: | ; SZ13-LABEL: constrained_vector_fptrunc_v1f64: | ||||
; SZ13: # %bb.0: # %entry | ; SZ13: # %bb.0: # %entry | ||||
; SZ13-NEXT: larl %r1, .LCPI95_0 | ; SZ13-NEXT: larl %r1, .LCPI95_0 | ||||
; SZ13-NEXT: ld %f0, 0(%r1) | ; SZ13-NEXT: ld %f0, 0(%r1) | ||||
; SZ13-NEXT: wledb %v24, %f0, 0, 0 | ; SZ13-NEXT: wledb %v24, %f0, 0, 0 | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%result = call <1 x float> @llvm.experimental.constrained.fptrunc.v1f32.v1f64( | %result = call <1 x float> @llvm.experimental.constrained.fptrunc.v1f32.v1f64( | ||||
<1 x double><double 42.1>, | <1 x double><double 42.1>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <1 x float> %result | ret <1 x float> %result | ||||
} | } | ||||
define <2 x float> @constrained_vector_fptrunc_v2f64() { | define <2 x float> @constrained_vector_fptrunc_v2f64() #0 { | ||||
; S390X-LABEL: constrained_vector_fptrunc_v2f64: | ; S390X-LABEL: constrained_vector_fptrunc_v2f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: larl %r1, .LCPI96_0 | ; S390X-NEXT: larl %r1, .LCPI96_0 | ||||
; S390X-NEXT: ld %f0, 0(%r1) | ; S390X-NEXT: ld %f0, 0(%r1) | ||||
; S390X-NEXT: larl %r1, .LCPI96_1 | ; S390X-NEXT: larl %r1, .LCPI96_1 | ||||
; S390X-NEXT: ld %f1, 0(%r1) | ; S390X-NEXT: ld %f1, 0(%r1) | ||||
; S390X-NEXT: ledbr %f2, %f0 | ; S390X-NEXT: ledbr %f2, %f0 | ||||
; S390X-NEXT: ledbr %f0, %f1 | ; S390X-NEXT: ledbr %f0, %f1 | ||||
Show All 9 Lines | |||||
; SZ13-NEXT: ledbra %f1, 0, %f1, 0 | ; SZ13-NEXT: ledbra %f1, 0, %f1, 0 | ||||
; SZ13-NEXT: vmrhf %v0, %v1, %v0 | ; SZ13-NEXT: vmrhf %v0, %v1, %v0 | ||||
; SZ13-NEXT: vmrhg %v24, %v0, %v0 | ; SZ13-NEXT: vmrhg %v24, %v0, %v0 | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%result = call <2 x float> @llvm.experimental.constrained.fptrunc.v2f32.v2f64( | %result = call <2 x float> @llvm.experimental.constrained.fptrunc.v2f32.v2f64( | ||||
<2 x double><double 42.1, double 42.2>, | <2 x double><double 42.1, double 42.2>, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
ret <2 x float> %result | ret <2 x float> %result | ||||
} | } | ||||
define void @constrained_vector_fptrunc_v3f64(<3 x double>* %src, <3 x float>* %dest) { | define void @constrained_vector_fptrunc_v3f64(<3 x double>* %src, <3 x float>* %dest) #0 { | ||||
; S390X-LABEL: constrained_vector_fptrunc_v3f64: | ; S390X-LABEL: constrained_vector_fptrunc_v3f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: ld %f0, 0(%r2) | ; S390X-NEXT: ld %f0, 0(%r2) | ||||
; S390X-NEXT: ld %f1, 16(%r2) | ; S390X-NEXT: ld %f1, 16(%r2) | ||||
; S390X-NEXT: ld %f2, 8(%r2) | ; S390X-NEXT: ld %f2, 8(%r2) | ||||
; S390X-NEXT: ledbr %f0, %f0 | ; S390X-NEXT: ledbr %f0, %f0 | ||||
; S390X-NEXT: lgdr %r0, %f0 | ; S390X-NEXT: lgdr %r0, %f0 | ||||
; S390X-NEXT: nilf %r0, 0 | ; S390X-NEXT: nilf %r0, 0 | ||||
Show All 19 Lines | |||||
; SZ13-NEXT: ste %f0, 8(%r3) | ; SZ13-NEXT: ste %f0, 8(%r3) | ||||
; SZ13-NEXT: vsteg %v1, 0(%r3), 0 | ; SZ13-NEXT: vsteg %v1, 0(%r3), 0 | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%b = load <3 x double>, <3 x double>* %src | %b = load <3 x double>, <3 x double>* %src | ||||
%result = call <3 x float> @llvm.experimental.constrained.fptrunc.v3f32.v3f64( | %result = call <3 x float> @llvm.experimental.constrained.fptrunc.v3f32.v3f64( | ||||
<3 x double> %b, | <3 x double> %b, | ||||
metadata !"round.dynamic", | metadata !"round.dynamic", | ||||
metadata !"fpexcept.strict") | metadata !"fpexcept.strict") #0 | ||||
store <3 x float> %result, <3 x float>* %dest | store <3 x float> %result, <3 x float>* %dest | ||||
ret void | ret void | ||||
} | } | ||||
define <4 x float> @constrained_vector_fptrunc_v4f64() { | define <4 x float> @constrained_vector_fptrunc_v4f64() #0 { | ||||
; S390X-LABEL: constrained_vector_fptrunc_v4f64: | ; S390X-LABEL: constrained_vector_fptrunc_v4f64: | ||||
; S390X: # %bb.0: # %entry | ; S390X: # %bb.0: # %entry | ||||
; S390X-NEXT: larl %r1, .LCPI98_0 | ; S390X-NEXT: larl %r1, .LCPI98_0 | ||||
; S390X-NEXT: ld %f0, 0(%r1) | ; S390X-NEXT: ld %f0, 0(%r1) | ||||
; S390X-NEXT: larl %r1, .LCPI98_1 | ; S390X-NEXT: larl %r1, .LCPI98_1 | ||||
; S390X-NEXT: ld %f1, 0(%r1) | ; S390X-NEXT: ld %f1, 0(%r1) | ||||
; S390X-NEXT: larl %r1, .LCPI98_2 | ; S390X-NEXT: larl %r1, .LCPI98_2 | ||||
; S390X-NEXT: ld %f2, 0(%r1) | ; S390X-NEXT: ld %f2, 0(%r1) | ||||
Show All 23 Lines | |||||
; SZ13-NEXT: vmrhf %v1, %v2, %v1 | ; SZ13-NEXT: vmrhf %v1, %v2, %v1 | ||||
; SZ13-NEXT: vmrhg %v24, %v1, %v0 | ; SZ13-NEXT: vmrhg %v24, %v1, %v0 | ||||
; SZ13-NEXT: br %r14 | ; SZ13-NEXT: br %r14 | ||||
entry: | entry: | ||||
%result = call <4 x float> @llvm.experimental.constrained.fptrunc.v4f32.v4f64( | %result = call <4 x float> @llvm.experimental.constrained.fptrunc.v4f32.v4f64( | ||||
<4 x double><double 42.1, double 42.2, | <4 x double><double 42.1, double 42.2, | ||||
double 42.3, double 42.4>, | double 42.3, double 42.4>, | ||||
metadata !"round.dynamic", |