ELF: Have __rela_iplt_{start,end} surround .rela.iplt with --pack-dyn-relocs=android.
[llvm-project.git] / llvm / test / CodeGen / NVPTX / branch-fold.mir
blob8bdac44c4f2350e7d73b7a7ca45579e91bf2fa9e
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -o - %s -march=nvptx64 -mcpu=sm_35 -run-pass=branch-folder | FileCheck %s
4 --- |
5   ; ModuleID = '/mnt/nas/asavonic/work/llvm/llvm/test/CodeGen/NVPTX/branch-fold.ll'
6   source_filename = "/mnt/nas/asavonic/work/llvm/llvm/test/CodeGen/NVPTX/branch-fold.ll"
7   target datalayout = "e-i64:64-i128:128-v16:16-v32:32-n16:32:64"
8   target triple = "nvptx64-nvidia-cuda"
10   define ptx_kernel void @hoge() {
11   bb:
12     br i1 undef, label %bb1.preheader, label %bb4.preheader
14   bb1.preheader:                                    ; preds = %bb
15     br label %bb1
17   bb1:                                              ; preds = %bb1.preheader, %bb1
18     %lsr.iv = phi i64 [ undef, %bb1.preheader ], [ %lsr.iv.next, %bb1 ]
19     %lsr.iv.next = add i64 %lsr.iv, 1
20     %tmp3 = icmp sle i64 %lsr.iv.next, 0
21     br i1 %tmp3, label %bb1, label %bb4.preheader
23   bb4.preheader:                                    ; preds = %bb1, %bb
24     br label %bb4
26   bb4:                                              ; preds = %bb4.preheader, %bb4
27     br label %bb4
28   }
30 ...
31 ---
32 name:            hoge
33 alignment:       1
34 tracksRegLiveness: true
35 registers:
36   - { id: 0, class: int64regs }
37   - { id: 1, class: int64regs }
38   - { id: 2, class: int1regs }
39   - { id: 3, class: int64regs }
40   - { id: 4, class: int1regs }
41   - { id: 5, class: int64regs }
42 frameInfo:
43   maxAlignment:    1
44 machineFunctionInfo: {}
45 body:             |
46   ; CHECK-LABEL: name: hoge
47   ; CHECK: bb.0.bb:
48   ; CHECK-NEXT:   successors: %bb.1(0x40000000), %bb.3(0x40000000)
49   ; CHECK-NEXT: {{  $}}
50   ; CHECK-NEXT:   CBranch undef %2:int1regs, %bb.3
51   ; CHECK-NEXT: {{  $}}
52   ; CHECK-NEXT: bb.1.bb1.preheader:
53   ; CHECK-NEXT:   successors: %bb.2(0x80000000)
54   ; CHECK-NEXT: {{  $}}
55   ; CHECK-NEXT:   [[DEF:%[0-9]+]]:int64regs = IMPLICIT_DEF
56   ; CHECK-NEXT: {{  $}}
57   ; CHECK-NEXT: bb.2.bb1:
58   ; CHECK-NEXT:   successors: %bb.2(0x7c000000), %bb.3(0x04000000)
59   ; CHECK-NEXT: {{  $}}
60   ; CHECK-NEXT:   [[ADDi64ri:%[0-9]+]]:int64regs = ADDi64ri [[ADDi64ri]], 1
61   ; CHECK-NEXT:   [[SETP_s64ri:%[0-9]+]]:int1regs = SETP_s64ri [[ADDi64ri]], 1, 2
62   ; CHECK-NEXT:   CBranch [[SETP_s64ri]], %bb.2
63   ; CHECK-NEXT: {{  $}}
64   ; CHECK-NEXT: bb.3.bb4:
65   ; CHECK-NEXT:   successors: %bb.3(0x80000000)
66   ; CHECK-NEXT: {{  $}}
67   ; CHECK-NEXT:   GOTO %bb.3
68   bb.0.bb:
69     successors: %bb.1, %bb.3
71     CBranch undef %2:int1regs, %bb.3
73   bb.1.bb1.preheader:
74     %5:int64regs = IMPLICIT_DEF
76   bb.2.bb1:
77     successors: %bb.2(0x7c000000), %bb.3(0x04000000)
79     %5:int64regs = ADDi64ri %5, 1
80     %4:int1regs = SETP_s64ri %5, 1, 2
81     CBranch %4, %bb.2
83   bb.3.bb4:
84     GOTO %bb.3
86 ...