[llvm] [SystemZ] Modify tests for constrained rounding functions (PR #116952)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Nov 20 02:45:25 PST 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-backend-systemz
Author: Serge Pavlov (spavloff)
<details>
<summary>Changes</summary>
The existing tests for constrained functions often use constant arguments. If constant evaluation is enhanced, such tests will not check code generation of the tested functions. To avoid it, the tests are modified to use loaded value instead of constants. Now only the tests for rounding functions are changed.
---
Patch is 34.03 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/116952.diff
1 Files Affected:
- (modified) llvm/test/CodeGen/SystemZ/vector-constrained-fp-intrinsics.ll (+59-432)
``````````diff
diff --git a/llvm/test/CodeGen/SystemZ/vector-constrained-fp-intrinsics.ll b/llvm/test/CodeGen/SystemZ/vector-constrained-fp-intrinsics.ll
index edf818ab95131c..6c0353a9b37ded 100644
--- a/llvm/test/CodeGen/SystemZ/vector-constrained-fp-intrinsics.ll
+++ b/llvm/test/CodeGen/SystemZ/vector-constrained-fp-intrinsics.ll
@@ -4156,7 +4156,7 @@ entry:
ret <4 x double> %log2
}
-define <1 x float> @constrained_vector_rint_v1f32() #0 {
+define <1 x float> @constrained_vector_rint_v1f32(ptr %a) #0 {
; S390X-LABEL: constrained_vector_rint_v1f32:
; S390X: # %bb.0: # %entry
; S390X-NEXT: larl %r1, .LCPI75_0
@@ -4172,14 +4172,15 @@ define <1 x float> @constrained_vector_rint_v1f32() #0 {
; SZ13-NEXT: vlr %v24, %v0
; SZ13-NEXT: br %r14
entry:
+ %b = load <1 x float>, ptr %a
%rint = call <1 x float> @llvm.experimental.constrained.rint.v1f32(
- <1 x float> <float 42.0>,
+ <1 x float> %b,
metadata !"round.dynamic",
metadata !"fpexcept.strict") #0
ret <1 x float> %rint
}
-define <2 x double> @constrained_vector_rint_v2f64() #0 {
+define <2 x double> @constrained_vector_rint_v2f64(ptr %a) #0 {
; S390X-LABEL: constrained_vector_rint_v2f64:
; S390X: # %bb.0: # %entry
; S390X-NEXT: larl %r1, .LCPI76_0
@@ -4197,14 +4198,15 @@ define <2 x double> @constrained_vector_rint_v2f64() #0 {
; SZ13-NEXT: vfidb %v24, %v0, 0, 0
; SZ13-NEXT: br %r14
entry:
+ %b = load <2 x double>, ptr %a
%rint = call <2 x double> @llvm.experimental.constrained.rint.v2f64(
- <2 x double> <double 42.1, double 42.0>,
+ <2 x double> %b,
metadata !"round.dynamic",
metadata !"fpexcept.strict") #0
ret <2 x double> %rint
}
-define <3 x float> @constrained_vector_rint_v3f32() #0 {
+define <3 x float> @constrained_vector_rint_v3f32(ptr %a) #0 {
; S390X-LABEL: constrained_vector_rint_v3f32:
; S390X: # %bb.0: # %entry
; S390X-NEXT: larl %r1, .LCPI77_0
@@ -4234,8 +4236,9 @@ define <3 x float> @constrained_vector_rint_v3f32() #0 {
; SZ13-NEXT: vmrhg %v24, %v1, %v0
; SZ13-NEXT: br %r14
entry:
+ %b = load <3 x float>, ptr %a
%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> %b,
metadata !"round.dynamic",
metadata !"fpexcept.strict") #0
ret <3 x float> %rint
@@ -4274,7 +4277,7 @@ entry:
ret void
}
-define <4 x double> @constrained_vector_rint_v4f64() #0 {
+define <4 x double> @constrained_vector_rint_v4f64(ptr %a) #0 {
; S390X-LABEL: constrained_vector_rint_v4f64:
; S390X: # %bb.0: # %entry
; S390X-NEXT: larl %r1, .LCPI79_0
@@ -4301,15 +4304,15 @@ define <4 x double> @constrained_vector_rint_v4f64() #0 {
; SZ13-NEXT: vfidb %v26, %v0, 0, 0
; SZ13-NEXT: br %r14
entry:
+ %b = load <4 x double>, ptr %a
%rint = call <4 x double> @llvm.experimental.constrained.rint.v4f64(
- <4 x double> <double 42.1, double 42.2,
- double 42.3, double 42.4>,
+ <4 x double> %b,
metadata !"round.dynamic",
metadata !"fpexcept.strict") #0
ret <4 x double> %rint
}
-define <1 x float> @constrained_vector_nearbyint_v1f32() #0 {
+define <1 x float> @constrained_vector_nearbyint_v1f32(ptr %a) #0 {
; S390X-LABEL: constrained_vector_nearbyint_v1f32:
; S390X: # %bb.0: # %entry
; S390X-NEXT: stmg %r14, %r15, 112(%r15)
@@ -4331,14 +4334,15 @@ define <1 x float> @constrained_vector_nearbyint_v1f32() #0 {
; SZ13-NEXT: vlr %v24, %v0
; SZ13-NEXT: br %r14
entry:
+ %b = load <1 x float>, ptr %a
%nearby = call <1 x float> @llvm.experimental.constrained.nearbyint.v1f32(
- <1 x float> <float 42.0>,
+ <1 x float> %b,
metadata !"round.dynamic",
metadata !"fpexcept.strict") #0
ret <1 x float> %nearby
}
-define <2 x double> @constrained_vector_nearbyint_v2f64() #0 {
+define <2 x double> @constrained_vector_nearbyint_v2f64(ptr %a) #0 {
; S390X-LABEL: constrained_vector_nearbyint_v2f64:
; S390X: # %bb.0: # %entry
; S390X-NEXT: stmg %r14, %r15, 112(%r15)
@@ -4368,14 +4372,15 @@ define <2 x double> @constrained_vector_nearbyint_v2f64() #0 {
; SZ13-NEXT: vfidb %v24, %v0, 4, 0
; SZ13-NEXT: br %r14
entry:
+ %b = load <2 x double>, ptr %a
%nearby = call <2 x double> @llvm.experimental.constrained.nearbyint.v2f64(
- <2 x double> <double 42.1, double 42.0>,
+ <2 x double> %b,
metadata !"round.dynamic",
metadata !"fpexcept.strict") #0
ret <2 x double> %nearby
}
-define <3 x float> @constrained_vector_nearbyint_v3f32() #0 {
+define <3 x float> @constrained_vector_nearbyint_v3f32(ptr %a) #0 {
; S390X-LABEL: constrained_vector_nearbyint_v3f32:
; S390X: # %bb.0: # %entry
; S390X-NEXT: stmg %r14, %r15, 112(%r15)
@@ -4423,8 +4428,9 @@ define <3 x float> @constrained_vector_nearbyint_v3f32() #0 {
; SZ13-NEXT: vmrhg %v24, %v1, %v0
; SZ13-NEXT: br %r14
entry:
+ %b = load <3 x double>, ptr %a
%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> %b,
metadata !"round.dynamic",
metadata !"fpexcept.strict") #0
ret <3 x float> %nearby
@@ -4484,7 +4490,7 @@ entry:
ret void
}
-define <4 x double> @constrained_vector_nearbyint_v4f64() #0 {
+define <4 x double> @constrained_vector_nearbyint_v4f64(ptr %a) #0 {
; S390X-LABEL: constrained_vector_nearbyint_v4f64:
; S390X: # %bb.0: # %entry
; S390X-NEXT: stmg %r14, %r15, 112(%r15)
@@ -4535,9 +4541,9 @@ define <4 x double> @constrained_vector_nearbyint_v4f64() #0 {
; SZ13-NEXT: vfidb %v26, %v0, 4, 0
; SZ13-NEXT: br %r14
entry:
+ %b = load <4 x double>, ptr %a
%nearby = call <4 x double> @llvm.experimental.constrained.nearbyint.v4f64(
- <4 x double> <double 42.1, double 42.2,
- double 42.3, double 42.4>,
+ <4 x double> %b,
metadata !"round.dynamic",
metadata !"fpexcept.strict") #0
ret <4 x double> %nearby
@@ -5544,7 +5550,7 @@ entry:
ret <4 x double> %result
}
-define <1 x float> @constrained_vector_ceil_v1f32() #0 {
+define <1 x float> @constrained_vector_ceil_v1f32(ptr %a) #0 {
; S390X-LABEL: constrained_vector_ceil_v1f32:
; S390X: # %bb.0: # %entry
; S390X-NEXT: stmg %r14, %r15, 112(%r15)
@@ -5565,13 +5571,14 @@ define <1 x float> @constrained_vector_ceil_v1f32() #0 {
; SZ13-NEXT: vlr %v24, %v0
; SZ13-NEXT: br %r14
entry:
+ %b = load <1 x float>, ptr %a
%ceil = call <1 x float> @llvm.experimental.constrained.ceil.v1f32(
<1 x float> <float 1.5>,
metadata !"fpexcept.strict") #0
ret <1 x float> %ceil
}
-define <2 x double> @constrained_vector_ceil_v2f64() #0 {
+define <2 x double> @constrained_vector_ceil_v2f64(ptr %a) #0 {
; S390X-LABEL: constrained_vector_ceil_v2f64:
; S390X: # %bb.0: # %entry
; S390X-NEXT: stmg %r14, %r15, 112(%r15)
@@ -5601,13 +5608,14 @@ define <2 x double> @constrained_vector_ceil_v2f64() #0 {
; SZ13-NEXT: vfidb %v24, %v0, 4, 6
; SZ13-NEXT: br %r14
entry:
+ %b = load <2 x double>, ptr %a
%ceil = call <2 x double> @llvm.experimental.constrained.ceil.v2f64(
- <2 x double> <double 1.1, double 1.9>,
+ <2 x double> %b,
metadata !"fpexcept.strict") #0
ret <2 x double> %ceil
}
-define <3 x float> @constrained_vector_ceil_v3f32() #0 {
+define <3 x float> @constrained_vector_ceil_v3f32(ptr %a) #0 {
; S390X-LABEL: constrained_vector_ceil_v3f32:
; S390X: # %bb.0: # %entry
; S390X-NEXT: stmg %r14, %r15, 112(%r15)
@@ -5654,8 +5662,9 @@ define <3 x float> @constrained_vector_ceil_v3f32() #0 {
; SZ13-NEXT: vmrhg %v24, %v1, %v0
; SZ13-NEXT: br %r14
entry:
+ %b = load <3 x float>, ptr %a
%ceil = call <3 x float> @llvm.experimental.constrained.ceil.v3f32(
- <3 x float> <float 1.5, float 2.5, float 3.5>,
+ <3 x float> %b,
metadata !"fpexcept.strict") #0
ret <3 x float> %ceil
}
@@ -5713,7 +5722,7 @@ entry:
ret void
}
-define <1 x float> @constrained_vector_floor_v1f32() #0 {
+define <1 x float> @constrained_vector_floor_v1f32(ptr %a) #0 {
; S390X-LABEL: constrained_vector_floor_v1f32:
; S390X: # %bb.0: # %entry
; S390X-NEXT: stmg %r14, %r15, 112(%r15)
@@ -5734,14 +5743,15 @@ define <1 x float> @constrained_vector_floor_v1f32() #0 {
; SZ13-NEXT: vlr %v24, %v0
; SZ13-NEXT: br %r14
entry:
+ %b = load <1 x float>, ptr %a
%floor = call <1 x float> @llvm.experimental.constrained.floor.v1f32(
- <1 x float> <float 1.5>,
+ <1 x float> %и,
metadata !"fpexcept.strict") #0
ret <1 x float> %floor
}
-define <2 x double> @constrained_vector_floor_v2f64() #0 {
+define <2 x double> @constrained_vector_floor_v2f64(ptr %a) #0 {
; S390X-LABEL: constrained_vector_floor_v2f64:
; S390X: # %bb.0: # %entry
; S390X-NEXT: stmg %r14, %r15, 112(%r15)
@@ -5771,13 +5781,14 @@ define <2 x double> @constrained_vector_floor_v2f64() #0 {
; SZ13-NEXT: vfidb %v24, %v0, 4, 7
; SZ13-NEXT: br %r14
entry:
+ %b = load <2 x double>, ptr %a
%floor = call <2 x double> @llvm.experimental.constrained.floor.v2f64(
- <2 x double> <double 1.1, double 1.9>,
+ <2 x double> %b,
metadata !"fpexcept.strict") #0
ret <2 x double> %floor
}
-define <3 x float> @constrained_vector_floor_v3f32() #0 {
+define <3 x float> @constrained_vector_floor_v3f32(ptr %a) #0 {
; S390X-LABEL: constrained_vector_floor_v3f32:
; S390X: # %bb.0: # %entry
; S390X-NEXT: stmg %r14, %r15, 112(%r15)
@@ -5824,8 +5835,9 @@ define <3 x float> @constrained_vector_floor_v3f32() #0 {
; SZ13-NEXT: vmrhg %v24, %v1, %v0
; SZ13-NEXT: br %r14
entry:
+ %b = load <3 x float>, ptr %a
%floor = call <3 x float> @llvm.experimental.constrained.floor.v3f32(
- <3 x float> <float 1.5, float 2.5, float 3.5>,
+ <3 x float> %b,
metadata !"fpexcept.strict") #0
ret <3 x float> %floor
}
@@ -5883,7 +5895,7 @@ entry:
ret void
}
-define <1 x float> @constrained_vector_round_v1f32() #0 {
+define <1 x float> @constrained_vector_round_v1f32(ptr %a) #0 {
; S390X-LABEL: constrained_vector_round_v1f32:
; S390X: # %bb.0: # %entry
; S390X-NEXT: stmg %r14, %r15, 112(%r15)
@@ -5904,13 +5916,14 @@ define <1 x float> @constrained_vector_round_v1f32() #0 {
; SZ13-NEXT: vlr %v24, %v0
; SZ13-NEXT: br %r14
entry:
+ %b = load <1 x float>, ptr %a
%round = call <1 x float> @llvm.experimental.constrained.round.v1f32(
- <1 x float> <float 1.5>,
+ <1 x float> %b,
metadata !"fpexcept.strict") #0
ret <1 x float> %round
}
-define <2 x double> @constrained_vector_round_v2f64() #0 {
+define <2 x double> @constrained_vector_round_v2f64(ptr %a) #0 {
; S390X-LABEL: constrained_vector_round_v2f64:
; S390X: # %bb.0: # %entry
; S390X-NEXT: stmg %r14, %r15, 112(%r15)
@@ -5940,13 +5953,14 @@ define <2 x double> @constrained_vector_round_v2f64() #0 {
; SZ13-NEXT: vfidb %v24, %v0, 4, 1
; SZ13-NEXT: br %r14
entry:
+ %b = load <2 x double>, ptr %a
%round = call <2 x double> @llvm.experimental.constrained.round.v2f64(
- <2 x double> <double 1.1, double 1.9>,
+ <2 x double> %b,
metadata !"fpexcept.strict") #0
ret <2 x double> %round
}
-define <3 x float> @constrained_vector_round_v3f32() #0 {
+define <3 x float> @constrained_vector_round_v3f32(ptr %a) #0 {
; S390X-LABEL: constrained_vector_round_v3f32:
; S390X: # %bb.0: # %entry
; S390X-NEXT: stmg %r14, %r15, 112(%r15)
@@ -5993,8 +6007,9 @@ define <3 x float> @constrained_vector_round_v3f32() #0 {
; SZ13-NEXT: vmrhg %v24, %v1, %v0
; SZ13-NEXT: br %r14
entry:
+ %b = load <3 x float>, ptr %a
%round = call <3 x float> @llvm.experimental.constrained.round.v3f32(
- <3 x float> <float 1.5, float 2.5, float 3.5>,
+ <3 x float> %b,
metadata !"fpexcept.strict") #0
ret <3 x float> %round
}
@@ -6053,7 +6068,7 @@ entry:
ret void
}
-define <1 x float> @constrained_vector_trunc_v1f32() #0 {
+define <1 x float> @constrained_vector_trunc_v1f32(ptr %a) #0 {
; S390X-LABEL: constrained_vector_trunc_v1f32:
; S390X: # %bb.0: # %entry
; S390X-NEXT: stmg %r14, %r15, 112(%r15)
@@ -6074,13 +6089,14 @@ define <1 x float> @constrained_vector_trunc_v1f32() #0 {
; SZ13-NEXT: vlr %v24, %v0
; SZ13-NEXT: br %r14
entry:
+ %b = load <1 x float>, ptr %a
%trunc = call <1 x float> @llvm.experimental.constrained.trunc.v1f32(
- <1 x float> <float 1.5>,
+ <1 x float> %x,
metadata !"fpexcept.strict") #0
ret <1 x float> %trunc
}
-define <2 x double> @constrained_vector_trunc_v2f64() #0 {
+define <2 x double> @constrained_vector_trunc_v2f64(ptr %a) #0 {
; S390X-LABEL: constrained_vector_trunc_v2f64:
; S390X: # %bb.0: # %entry
; S390X-NEXT: stmg %r14, %r15, 112(%r15)
@@ -6110,13 +6126,14 @@ define <2 x double> @constrained_vector_trunc_v2f64() #0 {
; SZ13-NEXT: vfidb %v24, %v0, 4, 5
; SZ13-NEXT: br %r14
entry:
+ %b = load <2 x double>, ptr %a
%trunc = call <2 x double> @llvm.experimental.constrained.trunc.v2f64(
- <2 x double> <double 1.1, double 1.9>,
+ <2 x double> %b,
metadata !"fpexcept.strict") #0
ret <2 x double> %trunc
}
-define <3 x float> @constrained_vector_trunc_v3f32() #0 {
+define <3 x float> @constrained_vector_trunc_v3f32(ptr %a) #0 {
; S390X-LABEL: constrained_vector_trunc_v3f32:
; S390X: # %bb.0: # %entry
; S390X-NEXT: stmg %r14, %r15, 112(%r15)
@@ -6163,8 +6180,9 @@ define <3 x float> @constrained_vector_trunc_v3f32() #0 {
; SZ13-NEXT: vmrhg %v24, %v1, %v0
; SZ13-NEXT: br %r14
entry:
+ %b = load <3 x float>, ptr %a
%trunc = call <3 x float> @llvm.experimental.constrained.trunc.v3f32(
- <3 x float> <float 1.5, float 2.5, float 3.5>,
+ <3 x float> %b,
metadata !"fpexcept.strict") #0
ret <3 x float> %trunc
}
@@ -6539,392 +6557,6 @@ entry:
ret <4 x double> %tan
}
-define <1 x float> @constrained_vector_atan2_v1f32() #0 {
-; S390X-LABEL: constrained_vector_atan2_v1f32:
-; S390X: # %bb.0: # %entry
-; S390X-NEXT: stmg %r14, %r15, 112(%r15)
-; S390X-NEXT: .cfi_offset %r14, -48
-; S390X-NEXT: .cfi_offset %r15, -40
-; S390X-NEXT: aghi %r15, -160
-; S390X-NEXT: .cfi_def_cfa_offset 320
-; S390X-NEXT: larl %r1, .LCPI124_0
-; S390X-NEXT: le %f0, 0(%r1)
-; S390X-NEXT: larl %r1, .LCPI124_1
-; S390X-NEXT: le %f2, 0(%r1)
-; S390X-NEXT: brasl %r14, atan2f at PLT
-; S390X-NEXT: lmg %r14, %r15, 272(%r15)
-; S390X-NEXT: br %r14
-;
-; SZ13-LABEL: constrained_vector_atan2_v1f32:
-; SZ13: # %bb.0: # %entry
-; SZ13-NEXT: stmg %r14, %r15, 112(%r15)
-; SZ13-NEXT: .cfi_offset %r14, -48
-; SZ13-NEXT: .cfi_offset %r15, -40
-; SZ13-NEXT: aghi %r15, -160
-; SZ13-NEXT: .cfi_def_cfa_offset 320
-; SZ13-NEXT: larl %r1, .LCPI124_0
-; SZ13-NEXT: lde %f0, 0(%r1)
-; SZ13-NEXT: larl %r1, .LCPI124_1
-; SZ13-NEXT: lde %f2, 0(%r1)
-; SZ13-NEXT: brasl %r14, atan2f at PLT
-; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0
-; SZ13-NEXT: vlr %v24, %v0
-; SZ13-NEXT: lmg %r14, %r15, 272(%r15)
-; SZ13-NEXT: br %r14
-entry:
- %atan2 = call <1 x float> @llvm.experimental.constrained.atan2.v1f32(
- <1 x float> <float 42.0>,
- <1 x float> <float 43.0>,
- metadata !"round.dynamic",
- metadata !"fpexcept.strict") #0
- ret <1 x float> %atan2
-}
-
-define <2 x double> @constrained_vector_atan2_v2f64() #0 {
-; S390X-LABEL: constrained_vector_atan2_v2f64:
-; S390X: # %bb.0: # %entry
-; S390X-NEXT: stmg %r14, %r15, 112(%r15)
-; S390X-NEXT: .cfi_offset %r14, -48
-; S390X-NEXT: .cfi_offset %r15, -40
-; S390X-NEXT: aghi %r15, -168
-; S390X-NEXT: .cfi_def_cfa_offset 328
-; S390X-NEXT: std %f8, 160(%r15) # 8-byte Folded Spill
-; S390X-NEXT: .cfi_offset %f8, -168
-; S390X-NEXT: larl %r1, .LCPI125_0
-; S390X-NEXT: ld %f0, 0(%r1)
-; S390X-NEXT: larl %r1, .LCPI125_1
-; S390X-NEXT: ld %f2, 0(%r1)
-; S390X-NEXT: brasl %r14, atan2 at PLT
-; S390X-NEXT: larl %r1, .LCPI125_2
-; S390X-NEXT: ld %f1, 0(%r1)
-; S390X-NEXT: larl %r1, .LCPI125_3
-; S390X-NEXT: ld %f2, 0(%r1)
-; S390X-NEXT: ldr %f8, %f0
-; S390X-NEXT: ldr %f0, %f1
-; S390X-NEXT: brasl %r14, atan2 at PLT
-; S390X-NEXT: ldr %f2, %f8
-; S390X-NEXT: ld %f8, 160(%r15) # 8-byte Folded Reload
-; S390X-NEXT: lmg %r14, %r15, 280(%r15)
-; S390X-NEXT: br %r14
-;
-; SZ13-LABEL: constrained_vector_atan2_v2f64:
-; SZ13: # %bb.0: # %entry
-; SZ13-NEXT: stmg %r14, %r15, 112(%r15)
-; SZ13-NEXT: .cfi_offset %r14, -48
-; SZ13-NEXT: .cfi_offset %r15, -40
-; SZ13-NEXT: aghi %r15, -176
-; SZ13-NEXT: .cfi_def_cfa_offset 336
-; SZ13-NEXT: larl %r1, .LCPI125_0
-; SZ13-NEXT: ld %f0, 0(%r1)
-; SZ13-NEXT: larl %r1, .LCPI125_1
-; SZ13-NEXT: ld %f2, 0(%r1)
-; SZ13-NEXT: brasl %r14, atan2 at PLT
-; SZ13-NEXT: larl %r1, .LCPI125_2
-; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0
-; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill
-; SZ13-NEXT: ld %f0, 0(%r1)
-; SZ13-NEXT: larl %r1, .LCPI125_3
-; SZ13-NEXT: ld %f2, 0(%r1)
-; SZ13-NEXT: brasl %r14, atan2 at PLT
-; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload
-; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0
-; SZ13-NEXT: vmrhg %v24, %v0, %v1
-; SZ13-NEXT: lmg %r14, %r15, 288(%r15)
-; SZ13-NEXT: br %r14
-entry:
- %atan2 = call <2 x double> @llvm.experimental.constrained.atan2.v2f64(
- <2 x double> <double 42.0, double 42.1>,
- <2 x double> <double 43.0, double 43.1>,
- metadata !"round.dynamic",
- metadata !"fpexcept.strict") #0
- ret <2 x double> %atan2
-}
-
-define <3 x float> @constrained_vector_atan2_v3f32() #0 {
-; S390X-LABEL: constrained_vector_atan2_v3f32:
-; S390X: # %bb.0: # %entry
-; S390X-NEXT: stmg %r14, %r15, 112(%r15)
-; S390X-NEXT: .cfi_offset %r14, -48
-; S390X-NEXT: .cfi_offset %r15, -40
-; S390X-NEXT: aghi %r15, -176
-; S390X-NEXT: .cfi_def_cfa_offset 336
-; S390X-NEXT: std %f8, 168(%r15) # 8-byte Folded Spill
-; S390X-NEXT: std %f9, 160(%r15) # 8-byte Folded Spill
-; S390X-NEXT: .cfi_offset %f8, -168
-; S390X-NEXT: .cfi_offset %f9, -176
-; S390X-NEXT: larl %r1, .LCPI126_0
-; S390X-NEXT: le %f0, 0(%r1)
-; S390X-NEXT: larl %r1, .LCPI126_1
-; S390X-NEXT: le %f2, 0(%r1)
-; S390X-NEXT: brasl %r14, atan2f at PLT
-; S390X-NEXT: larl %r1, .LCPI126_2
-; S390X-NEXT: le %f1, 0(%r1)
-; S390X-NEXT: larl %r1, .LCPI126_3
-; S390X-NEXT: ...
[truncated]
``````````
</details>
https://github.com/llvm/llvm-project/pull/116952
More information about the llvm-commits
mailing list