diff options
Diffstat (limited to 'llvm/test/CodeGen/SystemZ')
| -rw-r--r-- | llvm/test/CodeGen/SystemZ/fp-cmp-01.ll | 12 | ||||
| -rw-r--r-- | llvm/test/CodeGen/SystemZ/fp-cmp-02.ll | 12 | ||||
| -rw-r--r-- | llvm/test/CodeGen/SystemZ/fp-cmp-03.ll | 15 |
3 files changed, 39 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/SystemZ/fp-cmp-01.ll b/llvm/test/CodeGen/SystemZ/fp-cmp-01.ll index d59640ec071..6a9598e30ce 100644 --- a/llvm/test/CodeGen/SystemZ/fp-cmp-01.ll +++ b/llvm/test/CodeGen/SystemZ/fp-cmp-01.ll @@ -147,3 +147,15 @@ define float @f7(float *%ptr0) { ret float %sel10 } + +; Check comparison with zero. +define i64 @f8(i64 %a, i64 %b, float %f) { +; CHECK-LABEL: f8: +; CHECK: ltebr %f0, %f0 +; CHECK-NEXT: je +; CHECK: lgr %r2, %r3 +; CHECK: br %r14 + %cond = fcmp oeq float %f, 0.0 + %res = select i1 %cond, i64 %a, i64 %b + ret i64 %res +} diff --git a/llvm/test/CodeGen/SystemZ/fp-cmp-02.ll b/llvm/test/CodeGen/SystemZ/fp-cmp-02.ll index 48374a722bb..309d12e824a 100644 --- a/llvm/test/CodeGen/SystemZ/fp-cmp-02.ll +++ b/llvm/test/CodeGen/SystemZ/fp-cmp-02.ll @@ -147,3 +147,15 @@ define double @f7(double *%ptr0) { ret double %sel10 } + +; Check comparison with zero. +define i64 @f8(i64 %a, i64 %b, double %f) { +; CHECK-LABEL: f8: +; CHECK: ltdbr %f0, %f0 +; CHECK-NEXT: je +; CHECK: lgr %r2, %r3 +; CHECK: br %r14 + %cond = fcmp oeq double %f, 0.0 + %res = select i1 %cond, i64 %a, i64 %b + ret i64 %res +} diff --git a/llvm/test/CodeGen/SystemZ/fp-cmp-03.ll b/llvm/test/CodeGen/SystemZ/fp-cmp-03.ll index 3badc46352c..0f71f4e3a92 100644 --- a/llvm/test/CodeGen/SystemZ/fp-cmp-03.ll +++ b/llvm/test/CodeGen/SystemZ/fp-cmp-03.ll @@ -18,3 +18,18 @@ define i64 @f1(i64 %a, i64 %b, fp128 *%ptr, float %f2) { %res = select i1 %cond, i64 %a, i64 %b ret i64 %res } + +; Check comparison with zero. +define i64 @f2(i64 %a, i64 %b, fp128 *%ptr) { +; CHECK-LABEL: f2: +; CHECK: ld %f0, 0(%r4) +; CHECK: ld %f2, 8(%r4) +; CHECK: ltxbr %f0, %f0 +; CHECK-NEXT: je +; CHECK: lgr %r2, %r3 +; CHECK: br %r14 + %f = load fp128 *%ptr + %cond = fcmp oeq fp128 %f, 0xL00000000000000000000000000000000 + %res = select i1 %cond, i64 %a, i64 %b + ret i64 %res +} |

