xref: /llvm-project/llvm/test/CodeGen/PowerPC/pr55911.ll (revision f38ea84a9f32058f3c2813b6f29b840c59de118c)
1; RUN: llc -fast-isel=1 -mcpu=ppc64 -mtriple=powerpc64 < %s | FileCheck %s
2; Check for non immediate compare insn.
3
4; ModuleID = 'test.c'
5source_filename = "test.c"
6target datalayout = "E-m:e-i64:64-n32:64"
7target triple = "ppc64"
8
9@.str = private unnamed_addr constant [9 x i8] c"correct\0A\00", align 1
10@.str.1 = private unnamed_addr constant [11 x i8] c"incorrect\0A\00", align 1
11
12; Function Attrs: noinline nounwind optnone uwtable
13define dso_local signext i32 @myTest() #0 {
14  %1 = alloca i64, align 8
15  %2 = alloca i64, align 8
16  store i64 4660, ptr %1, align 8
17  store i64 140737488355328, ptr %2, align 8
18  %3 = load i64, ptr %1, align 8
19  %4 = icmp ult i64 %3, 140737488355328
20  br i1 %4, label %5, label %7
21
225:                                                ; preds = %0
23  %6 = call signext i32 (ptr, ...) @printf(ptr noundef @.str)
24  br label %9
25
267:                                                ; preds = %0
27  %8 = call signext i32 (ptr, ...) @printf(ptr noundef @.str.1)
28  br label %9
29
309:                                                ; preds = %7, %5
31  ret i32 0
32}
33
34declare signext i32 @printf(ptr noundef, ...) #1
35
36; CHECK-LABEL: myTest:
37; CHECK:       # %bb.0:
38; CHECK:       mflr 0
39; CHECK:       li 3, 1
40; CHECK:       sldi 3, 3, 47
41; CHECK:       ld 4, 120(1)
42; CHECK:       cmpld   4, 3
43