From be133a8757103c430a36f15d6210f99a0206921f Mon Sep 17 00:00:00 2001 From: Richard Sandiford Date: Wed, 28 Aug 2013 09:01:51 +0000 Subject: [SystemZ] Extend memcmp support to all constant lengths This uses the infrastructure added for memcpy and memmove in r189331. llvm-svn: 189458 --- llvm/test/CodeGen/SystemZ/memcmp-02.ll | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'llvm/test/CodeGen/SystemZ/memcmp-02.ll') diff --git a/llvm/test/CodeGen/SystemZ/memcmp-02.ll b/llvm/test/CodeGen/SystemZ/memcmp-02.ll index cae3d3d4943..74b090dcdd8 100644 --- a/llvm/test/CodeGen/SystemZ/memcmp-02.ll +++ b/llvm/test/CodeGen/SystemZ/memcmp-02.ll @@ -125,10 +125,14 @@ exit: ret i64 %res } -; 257 bytes is too big for a single CLC. For now expect a call instead. +; 257 bytes needs two CLCs. define i64 @f8(i8 *%src1, i8 *%src2) { ; CHECK-LABEL: f8: -; CHECK: brasl %r14, memcmp@PLT +; CHECK: clc 0(256,%r2), 0(%r3) +; CHECK: jlh [[LABEL:\..*]] +; CHECK: clc 256(1,%r2), 256(%r3) +; CHECK: [[LABEL]]: +; CHECK: ipm [[REG:%r[0-5]]] ; CHECK: br %r14 %res = call i64 @memcmp(i8 *%src1, i8 *%src2, i64 257) ret i64 %res -- cgit v1.2.3