xref: /llvm-project/llvm/test/CodeGen/AArch64/cmpwithshort.ll (revision 3d18c8cd265c0c0bf1d85226c4770a2dd0f86e8f)
1; RUN: llc < %s -O3 -mtriple=aarch64 | FileCheck %s
2
3define i16 @test_1cmp_signed_1(ptr %ptr1) {
4; CHECK-LABEL: @test_1cmp_signed_1
5; CHECK: ldrsh
6; CHECK-NEXT: cmn
7entry:
8  %val = load i16, ptr %ptr1, align 2
9  %cmp = icmp eq i16 %val, -1
10  br i1 %cmp, label %if, label %if.then
11if:
12  ret i16 1
13if.then:
14  ret i16 0
15}
16
17define i16 @test_1cmp_signed_2(ptr %ptr1) {
18; CHECK-LABEL: @test_1cmp_signed_2
19; CHECK: ldrsh
20; CHECK-NEXT: cmn
21entry:
22  %val = load i16, ptr %ptr1, align 2
23  %cmp = icmp sge i16 %val, -1
24  br i1 %cmp, label %if, label %if.then
25if:
26  ret i16 1
27if.then:
28  ret i16 0
29}
30
31define i16 @test_1cmp_unsigned_1(ptr %ptr1) {
32; CHECK-LABEL: @test_1cmp_unsigned_1
33; CHECK: ldrsh
34; CHECK-NEXT: cmn
35entry:
36  %val = load i16, ptr %ptr1, align 2
37  %cmp = icmp uge i16 %val, -1
38  br i1 %cmp, label %if, label %if.then
39if:
40  ret i16 1
41if.then:
42  ret i16 0
43}
44