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