diff options
Diffstat (limited to 'llvm/test/CodeGen/SystemZ/memchr-02.ll')
-rw-r--r-- | llvm/test/CodeGen/SystemZ/memchr-02.ll | 57 |
1 files changed, 0 insertions, 57 deletions
diff --git a/llvm/test/CodeGen/SystemZ/memchr-02.ll b/llvm/test/CodeGen/SystemZ/memchr-02.ll deleted file mode 100644 index 0cfca2af1e9..00000000000 --- a/llvm/test/CodeGen/SystemZ/memchr-02.ll +++ /dev/null @@ -1,57 +0,0 @@ -; Test memchr using SRST, with the correct prototype. -; -; RUN: llc < %s -mtriple=s390x-linux-gnu -no-integrated-as | FileCheck %s - -declare i8 *@memchr(i8 *%src, i32 %char, i64 %len) - -; Test a simple forwarded call. -define i8 *@f1(i64 %len, i8 *%src, i32 %char) { -; CHECK-LABEL: f1: -; CHECK-DAG: agr %r2, %r3 -; CHECK-DAG: llcr %r0, %r4 -; CHECK: [[LABEL:\.[^:]*]]: -; CHECK: srst %r2, %r3 -; CHECK-NEXT: jo [[LABEL]] -; CHECK: blr %r14 -; CHECK: lghi %r2, 0 -; CHECK: br %r14 - %res = call i8 *@memchr(i8 *%src, i32 %char, i64 %len) - ret i8 *%res -} - -; Test a doubled call with no use of %r0 in between. There should be a -; single load of %r0. -define i8 *@f2(i8 *%src, i8 *%charptr, i64 %len) { -; CHECK-LABEL: f2: -; CHECK: llc %r0, 0(%r3) -; CHECK-NOT: %r0 -; CHECK: srst [[RES1:%r[1-5]]], %r2 -; CHECK-NOT: %r0 -; CHECK: srst %r2, [[RES1]] -; CHECK: br %r14 - %char = load volatile i8 , i8 *%charptr - %charext = zext i8 %char to i32 - %res1 = call i8 *@memchr(i8 *%src, i32 %charext, i64 %len) - %res2 = call i8 *@memchr(i8 *%res1, i32 %charext, i64 %len) - ret i8 *%res2 -} - -; Test a doubled call with a use of %r0 in between. %r0 must be loaded -; for each loop. -define i8 *@f3(i8 *%src, i8 *%charptr, i64 %len) { -; CHECK-LABEL: f3: -; CHECK: llc [[CHAR:%r[1-5]]], 0(%r3) -; CHECK: lr %r0, [[CHAR]] -; CHECK: srst [[RES1:%r[1-5]]], %r2 -; CHECK: lhi %r0, 0 -; CHECK: blah %r0 -; CHECK: lr %r0, [[CHAR]] -; CHECK: srst %r2, [[RES1]] -; CHECK: br %r14 - %char = load volatile i8 , i8 *%charptr - %charext = zext i8 %char to i32 - %res1 = call i8 *@memchr(i8 *%src, i32 %charext, i64 %len) - call void asm sideeffect "blah $0", "{r0}" (i32 0) - %res2 = call i8 *@memchr(i8 *%res1, i32 %charext, i64 %len) - ret i8 *%res2 -} |