xref: /llvm-project/llvm/test/CodeGen/X86/branchfolding-undef.mir (revision 80aa2290fb02386579e5d7b0a1d8ce3691fd88da)
1# RUN: llc -o - %s -mtriple=i686-- -run-pass branch-folder | FileCheck %s
2# Test that tail merging drops undef flags that aren't present on all
3# instructions to be merged.
4--- |
5  define void @func() { ret void }
6...
7---
8# CHECK-LABEL: name: func
9# CHECK: bb.1:
10# CHECK: $eax = MOV32ri 2
11# CHECK-NOT: RET
12# CHECK: bb.2:
13# CHECK-NOT: RET 0, undef $eax
14# CHECK: RET 0, $eax
15name: func
16tracksRegLiveness: true
17body: |
18  bb.0:
19    JCC_1 %bb.1, 4, implicit undef $eflags
20    JMP_1 %bb.2
21
22  bb.1:
23    $eax = MOV32ri 2
24    RET 0, $eax
25
26  bb.2:
27    RET 0, undef $eax
28...
29