diff options
Diffstat (limited to 'test/CodeGen/AArch64/cmpwithshort.ll')
-rw-r--r-- | test/CodeGen/AArch64/cmpwithshort.ll | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/test/CodeGen/AArch64/cmpwithshort.ll b/test/CodeGen/AArch64/cmpwithshort.ll new file mode 100644 index 0000000..14efdcc --- /dev/null +++ b/test/CodeGen/AArch64/cmpwithshort.ll @@ -0,0 +1,46 @@ +; RUN: llc -O3 -march=aarch64 < %s | FileCheck %s + +define i16 @test_1cmp_signed_1(i16* %ptr1) { +; CHECK-LABLE: @test_1cmp_signed_1 +; CHECK: ldrsh +; CHECK-NEXT: cmn +entry: + %addr = getelementptr inbounds i16* %ptr1, i16 0 + %val = load i16* %addr, align 2 + %cmp = icmp eq i16 %val, -1 + br i1 %cmp, label %if, label %if.then +if: + ret i16 1 +if.then: + ret i16 0 +} + +define i16 @test_1cmp_signed_2(i16* %ptr1) { +; CHECK-LABLE: @test_1cmp_signed_2 +; CHECK: ldrsh +; CHECK-NEXT: cmn +entry: + %addr = getelementptr inbounds i16* %ptr1, i16 0 + %val = load i16* %addr, align 2 + %cmp = icmp sge i16 %val, -1 + br i1 %cmp, label %if, label %if.then +if: + ret i16 1 +if.then: + ret i16 0 +} + +define i16 @test_1cmp_unsigned_1(i16* %ptr1) { +; CHECK-LABLE: @test_1cmp_unsigned_1 +; CHECK: ldrsh +; CHECK-NEXT: cmn +entry: + %addr = getelementptr inbounds i16* %ptr1, i16 0 + %val = load i16* %addr, align 2 + %cmp = icmp uge i16 %val, -1 + br i1 %cmp, label %if, label %if.then +if: + ret i16 1 +if.then: + ret i16 0 +} |