diff --git a/llvm/test/CodeGen/X86/GlobalISel/select-phi.mir b/llvm/test/CodeGen/X86/GlobalISel/select-phi.mir --- a/llvm/test/CodeGen/X86/GlobalISel/select-phi.mir +++ b/llvm/test/CodeGen/X86/GlobalISel/select-phi.mir @@ -118,24 +118,28 @@ body: | ; ALL-LABEL: name: test_i8 ; ALL: bb.0.entry: - ; ALL: successors: %bb.2(0x40000000), %bb.1(0x40000000) - ; ALL: liveins: $edi, $edx, $esi - ; ALL: [[COPY:%[0-9]+]]:gr32 = COPY $edi - ; ALL: [[COPY1:%[0-9]+]]:gr32 = COPY $esi - ; ALL: [[COPY2:%[0-9]+]]:gr8 = COPY [[COPY1]].sub_8bit - ; ALL: [[COPY3:%[0-9]+]]:gr32 = COPY $edx - ; ALL: [[COPY4:%[0-9]+]]:gr8 = COPY [[COPY3]].sub_8bit - ; ALL: [[MOV32r0_:%[0-9]+]]:gr32 = MOV32r0 implicit-def $eflags - ; ALL: CMP32rr [[COPY]], [[MOV32r0_]], implicit-def $eflags - ; ALL: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 15, implicit $eflags - ; ALL: TEST8ri [[SETCCr]], 1, implicit-def $eflags - ; ALL: JCC_1 %bb.2, 5, implicit $eflags - ; ALL: bb.1.cond.false: - ; ALL: successors: %bb.2(0x80000000) - ; ALL: bb.2.cond.end: - ; ALL: [[PHI:%[0-9]+]]:gr8 = PHI [[COPY4]], %bb.1, [[COPY2]], %bb.0 - ; ALL: $al = COPY [[PHI]] - ; ALL: RET 0, implicit $al + ; ALL-NEXT: successors: %bb.2(0x40000000), %bb.1(0x40000000) + ; ALL-NEXT: liveins: $edi, $edx, $esi + ; ALL-NEXT: {{ $}} + ; ALL-NEXT: [[COPY:%[0-9]+]]:gr32 = COPY $edi + ; ALL-NEXT: [[COPY1:%[0-9]+]]:gr32 = COPY $esi + ; ALL-NEXT: [[COPY2:%[0-9]+]]:gr8 = COPY [[COPY1]].sub_8bit + ; ALL-NEXT: [[COPY3:%[0-9]+]]:gr32 = COPY $edx + ; ALL-NEXT: [[COPY4:%[0-9]+]]:gr8 = COPY [[COPY3]].sub_8bit + ; ALL-NEXT: [[MOV32r0_:%[0-9]+]]:gr32 = MOV32r0 implicit-def $eflags + ; ALL-NEXT: CMP32rr [[COPY]], [[MOV32r0_]], implicit-def $eflags + ; ALL-NEXT: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 15, implicit $eflags + ; ALL-NEXT: TEST8ri [[SETCCr]], 1, implicit-def $eflags + ; ALL-NEXT: JCC_1 %bb.2, 5, implicit $eflags + ; ALL-NEXT: {{ $}} + ; ALL-NEXT: bb.1.cond.false: + ; ALL-NEXT: successors: %bb.2(0x80000000) + ; ALL-NEXT: {{ $}} + ; ALL-NEXT: {{ $}} + ; ALL-NEXT: bb.2.cond.end: + ; ALL-NEXT: [[PHI:%[0-9]+]]:gr8 = PHI [[COPY4]], %bb.1, [[COPY2]], %bb.0 + ; ALL-NEXT: $al = COPY [[PHI]] + ; ALL-NEXT: RET 0, implicit $al bb.1.entry: successors: %bb.3(0x40000000), %bb.2(0x40000000) liveins: $edi, $edx, $esi @@ -178,24 +182,28 @@ body: | ; ALL-LABEL: name: test_i16 ; ALL: bb.0.entry: - ; ALL: successors: %bb.2(0x40000000), %bb.1(0x40000000) - ; ALL: liveins: $edi, $edx, $esi - ; ALL: [[COPY:%[0-9]+]]:gr32 = COPY $edi - ; ALL: [[COPY1:%[0-9]+]]:gr32 = COPY $esi - ; ALL: [[COPY2:%[0-9]+]]:gr16 = COPY [[COPY1]].sub_16bit - ; ALL: [[COPY3:%[0-9]+]]:gr32 = COPY $edx - ; ALL: [[COPY4:%[0-9]+]]:gr16 = COPY [[COPY3]].sub_16bit - ; ALL: [[MOV32r0_:%[0-9]+]]:gr32 = MOV32r0 implicit-def $eflags - ; ALL: CMP32rr [[COPY]], [[MOV32r0_]], implicit-def $eflags - ; ALL: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 15, implicit $eflags - ; ALL: TEST8ri [[SETCCr]], 1, implicit-def $eflags - ; ALL: JCC_1 %bb.2, 5, implicit $eflags - ; ALL: bb.1.cond.false: - ; ALL: successors: %bb.2(0x80000000) - ; ALL: bb.2.cond.end: - ; ALL: [[PHI:%[0-9]+]]:gr16 = PHI [[COPY4]], %bb.1, [[COPY2]], %bb.0 - ; ALL: $ax = COPY [[PHI]] - ; ALL: RET 0, implicit $ax + ; ALL-NEXT: successors: %bb.2(0x40000000), %bb.1(0x40000000) + ; ALL-NEXT: liveins: $edi, $edx, $esi + ; ALL-NEXT: {{ $}} + ; ALL-NEXT: [[COPY:%[0-9]+]]:gr32 = COPY $edi + ; ALL-NEXT: [[COPY1:%[0-9]+]]:gr32 = COPY $esi + ; ALL-NEXT: [[COPY2:%[0-9]+]]:gr16 = COPY [[COPY1]].sub_16bit + ; ALL-NEXT: [[COPY3:%[0-9]+]]:gr32 = COPY $edx + ; ALL-NEXT: [[COPY4:%[0-9]+]]:gr16 = COPY [[COPY3]].sub_16bit + ; ALL-NEXT: [[MOV32r0_:%[0-9]+]]:gr32 = MOV32r0 implicit-def $eflags + ; ALL-NEXT: CMP32rr [[COPY]], [[MOV32r0_]], implicit-def $eflags + ; ALL-NEXT: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 15, implicit $eflags + ; ALL-NEXT: TEST8ri [[SETCCr]], 1, implicit-def $eflags + ; ALL-NEXT: JCC_1 %bb.2, 5, implicit $eflags + ; ALL-NEXT: {{ $}} + ; ALL-NEXT: bb.1.cond.false: + ; ALL-NEXT: successors: %bb.2(0x80000000) + ; ALL-NEXT: {{ $}} + ; ALL-NEXT: {{ $}} + ; ALL-NEXT: bb.2.cond.end: + ; ALL-NEXT: [[PHI:%[0-9]+]]:gr16 = PHI [[COPY4]], %bb.1, [[COPY2]], %bb.0 + ; ALL-NEXT: $ax = COPY [[PHI]] + ; ALL-NEXT: RET 0, implicit $ax bb.1.entry: successors: %bb.3(0x40000000), %bb.2(0x40000000) liveins: $edi, $edx, $esi @@ -237,26 +245,32 @@ body: | ; ALL-LABEL: name: test_i32 ; ALL: bb.0.entry: - ; ALL: successors: %bb.1(0x40000000), %bb.2(0x40000000) - ; ALL: liveins: $edi, $edx, $esi - ; ALL: [[COPY:%[0-9]+]]:gr32 = COPY $edi - ; ALL: [[COPY1:%[0-9]+]]:gr32 = COPY $esi - ; ALL: [[COPY2:%[0-9]+]]:gr32 = COPY $edx - ; ALL: [[MOV32r0_:%[0-9]+]]:gr32 = MOV32r0 implicit-def $eflags - ; ALL: CMP32rr [[COPY]], [[MOV32r0_]], implicit-def $eflags - ; ALL: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 15, implicit $eflags - ; ALL: TEST8ri [[SETCCr]], 1, implicit-def $eflags - ; ALL: JCC_1 %bb.1, 5, implicit $eflags - ; ALL: JMP_1 %bb.2 - ; ALL: bb.1.cond.true: - ; ALL: successors: %bb.3(0x80000000) - ; ALL: JMP_1 %bb.3 - ; ALL: bb.2.cond.false: - ; ALL: successors: %bb.3(0x80000000) - ; ALL: bb.3.cond.end: - ; ALL: [[PHI:%[0-9]+]]:gr32 = PHI [[COPY1]], %bb.1, [[COPY2]], %bb.2 - ; ALL: $eax = COPY [[PHI]] - ; ALL: RET 0, implicit $eax + ; ALL-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) + ; ALL-NEXT: liveins: $edi, $edx, $esi + ; ALL-NEXT: {{ $}} + ; ALL-NEXT: [[COPY:%[0-9]+]]:gr32 = COPY $edi + ; ALL-NEXT: [[COPY1:%[0-9]+]]:gr32 = COPY $esi + ; ALL-NEXT: [[COPY2:%[0-9]+]]:gr32 = COPY $edx + ; ALL-NEXT: [[MOV32r0_:%[0-9]+]]:gr32 = MOV32r0 implicit-def $eflags + ; ALL-NEXT: CMP32rr [[COPY]], [[MOV32r0_]], implicit-def $eflags + ; ALL-NEXT: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 15, implicit $eflags + ; ALL-NEXT: TEST8ri [[SETCCr]], 1, implicit-def $eflags + ; ALL-NEXT: JCC_1 %bb.1, 5, implicit $eflags + ; ALL-NEXT: JMP_1 %bb.2 + ; ALL-NEXT: {{ $}} + ; ALL-NEXT: bb.1.cond.true: + ; ALL-NEXT: successors: %bb.3(0x80000000) + ; ALL-NEXT: {{ $}} + ; ALL-NEXT: JMP_1 %bb.3 + ; ALL-NEXT: {{ $}} + ; ALL-NEXT: bb.2.cond.false: + ; ALL-NEXT: successors: %bb.3(0x80000000) + ; ALL-NEXT: {{ $}} + ; ALL-NEXT: {{ $}} + ; ALL-NEXT: bb.3.cond.end: + ; ALL-NEXT: [[PHI:%[0-9]+]]:gr32 = PHI [[COPY1]], %bb.1, [[COPY2]], %bb.2 + ; ALL-NEXT: $eax = COPY [[PHI]] + ; ALL-NEXT: RET 0, implicit $eax bb.1.entry: successors: %bb.2(0x40000000), %bb.3(0x40000000) liveins: $edi, $edx, $esi @@ -302,26 +316,32 @@ body: | ; ALL-LABEL: name: test_i64 ; ALL: bb.0.entry: - ; ALL: successors: %bb.1(0x40000000), %bb.2(0x40000000) - ; ALL: liveins: $edi, $rdx, $rsi - ; ALL: [[COPY:%[0-9]+]]:gr32 = COPY $edi - ; ALL: [[COPY1:%[0-9]+]]:gr64 = COPY $rsi - ; ALL: [[COPY2:%[0-9]+]]:gr64 = COPY $rdx - ; ALL: [[MOV32r0_:%[0-9]+]]:gr32 = MOV32r0 implicit-def $eflags - ; ALL: CMP32rr [[COPY]], [[MOV32r0_]], implicit-def $eflags - ; ALL: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 15, implicit $eflags - ; ALL: TEST8ri [[SETCCr]], 1, implicit-def $eflags - ; ALL: JCC_1 %bb.1, 5, implicit $eflags - ; ALL: JMP_1 %bb.2 - ; ALL: bb.1.cond.true: - ; ALL: successors: %bb.3(0x80000000) - ; ALL: JMP_1 %bb.3 - ; ALL: bb.2.cond.false: - ; ALL: successors: %bb.3(0x80000000) - ; ALL: bb.3.cond.end: - ; ALL: [[PHI:%[0-9]+]]:gr64 = PHI [[COPY1]], %bb.1, [[COPY2]], %bb.2 - ; ALL: $rax = COPY [[PHI]] - ; ALL: RET 0, implicit $rax + ; ALL-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) + ; ALL-NEXT: liveins: $edi, $rdx, $rsi + ; ALL-NEXT: {{ $}} + ; ALL-NEXT: [[COPY:%[0-9]+]]:gr32 = COPY $edi + ; ALL-NEXT: [[COPY1:%[0-9]+]]:gr64 = COPY $rsi + ; ALL-NEXT: [[COPY2:%[0-9]+]]:gr64 = COPY $rdx + ; ALL-NEXT: [[MOV32r0_:%[0-9]+]]:gr32 = MOV32r0 implicit-def $eflags + ; ALL-NEXT: CMP32rr [[COPY]], [[MOV32r0_]], implicit-def $eflags + ; ALL-NEXT: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 15, implicit $eflags + ; ALL-NEXT: TEST8ri [[SETCCr]], 1, implicit-def $eflags + ; ALL-NEXT: JCC_1 %bb.1, 5, implicit $eflags + ; ALL-NEXT: JMP_1 %bb.2 + ; ALL-NEXT: {{ $}} + ; ALL-NEXT: bb.1.cond.true: + ; ALL-NEXT: successors: %bb.3(0x80000000) + ; ALL-NEXT: {{ $}} + ; ALL-NEXT: JMP_1 %bb.3 + ; ALL-NEXT: {{ $}} + ; ALL-NEXT: bb.2.cond.false: + ; ALL-NEXT: successors: %bb.3(0x80000000) + ; ALL-NEXT: {{ $}} + ; ALL-NEXT: {{ $}} + ; ALL-NEXT: bb.3.cond.end: + ; ALL-NEXT: [[PHI:%[0-9]+]]:gr64 = PHI [[COPY1]], %bb.1, [[COPY2]], %bb.2 + ; ALL-NEXT: $rax = COPY [[PHI]] + ; ALL-NEXT: RET 0, implicit $rax bb.1.entry: successors: %bb.2(0x40000000), %bb.3(0x40000000) liveins: $edi, $rdx, $rsi @@ -373,25 +393,29 @@ body: | ; ALL-LABEL: name: test_float ; ALL: bb.0.entry: - ; ALL: successors: %bb.2(0x40000000), %bb.1(0x40000000) - ; ALL: liveins: $edi, $xmm0, $xmm1 - ; ALL: [[COPY:%[0-9]+]]:gr32 = COPY $edi - ; ALL: [[COPY1:%[0-9]+]]:vr128 = COPY $xmm0 - ; ALL: [[COPY2:%[0-9]+]]:fr32 = COPY [[COPY1]] - ; ALL: [[COPY3:%[0-9]+]]:vr128 = COPY $xmm1 - ; ALL: [[COPY4:%[0-9]+]]:fr32 = COPY [[COPY3]] - ; ALL: [[MOV32r0_:%[0-9]+]]:gr32 = MOV32r0 implicit-def $eflags - ; ALL: CMP32rr [[COPY]], [[MOV32r0_]], implicit-def $eflags - ; ALL: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 15, implicit $eflags - ; ALL: TEST8ri [[SETCCr]], 1, implicit-def $eflags - ; ALL: JCC_1 %bb.2, 5, implicit $eflags - ; ALL: bb.1.cond.false: - ; ALL: successors: %bb.2(0x80000000) - ; ALL: bb.2.cond.end: - ; ALL: [[PHI:%[0-9]+]]:fr32 = PHI [[COPY4]], %bb.1, [[COPY2]], %bb.0 - ; ALL: [[COPY5:%[0-9]+]]:vr128 = COPY [[PHI]] - ; ALL: $xmm0 = COPY [[COPY5]] - ; ALL: RET 0, implicit $xmm0 + ; ALL-NEXT: successors: %bb.2(0x40000000), %bb.1(0x40000000) + ; ALL-NEXT: liveins: $edi, $xmm0, $xmm1 + ; ALL-NEXT: {{ $}} + ; ALL-NEXT: [[COPY:%[0-9]+]]:gr32 = COPY $edi + ; ALL-NEXT: [[COPY1:%[0-9]+]]:vr128 = COPY $xmm0 + ; ALL-NEXT: [[COPY2:%[0-9]+]]:fr32 = COPY [[COPY1]] + ; ALL-NEXT: [[COPY3:%[0-9]+]]:vr128 = COPY $xmm1 + ; ALL-NEXT: [[COPY4:%[0-9]+]]:fr32 = COPY [[COPY3]] + ; ALL-NEXT: [[MOV32r0_:%[0-9]+]]:gr32 = MOV32r0 implicit-def $eflags + ; ALL-NEXT: CMP32rr [[COPY]], [[MOV32r0_]], implicit-def $eflags + ; ALL-NEXT: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 15, implicit $eflags + ; ALL-NEXT: TEST8ri [[SETCCr]], 1, implicit-def $eflags + ; ALL-NEXT: JCC_1 %bb.2, 5, implicit $eflags + ; ALL-NEXT: {{ $}} + ; ALL-NEXT: bb.1.cond.false: + ; ALL-NEXT: successors: %bb.2(0x80000000) + ; ALL-NEXT: {{ $}} + ; ALL-NEXT: {{ $}} + ; ALL-NEXT: bb.2.cond.end: + ; ALL-NEXT: [[PHI:%[0-9]+]]:fr32 = PHI [[COPY4]], %bb.1, [[COPY2]], %bb.0 + ; ALL-NEXT: [[COPY5:%[0-9]+]]:vr128 = COPY [[PHI]] + ; ALL-NEXT: $xmm0 = COPY [[COPY5]] + ; ALL-NEXT: RET 0, implicit $xmm0 bb.1.entry: successors: %bb.3(0x40000000), %bb.2(0x40000000) liveins: $edi, $xmm0, $xmm1 @@ -435,25 +459,29 @@ body: | ; ALL-LABEL: name: test_double ; ALL: bb.0.entry: - ; ALL: successors: %bb.2(0x40000000), %bb.1(0x40000000) - ; ALL: liveins: $edi, $xmm0, $xmm1 - ; ALL: [[COPY:%[0-9]+]]:gr32 = COPY $edi - ; ALL: [[COPY1:%[0-9]+]]:vr128 = COPY $xmm0 - ; ALL: [[COPY2:%[0-9]+]]:fr64 = COPY [[COPY1]] - ; ALL: [[COPY3:%[0-9]+]]:vr128 = COPY $xmm1 - ; ALL: [[COPY4:%[0-9]+]]:fr64 = COPY [[COPY3]] - ; ALL: [[MOV32r0_:%[0-9]+]]:gr32 = MOV32r0 implicit-def $eflags - ; ALL: CMP32rr [[COPY]], [[MOV32r0_]], implicit-def $eflags - ; ALL: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 15, implicit $eflags - ; ALL: TEST8ri [[SETCCr]], 1, implicit-def $eflags - ; ALL: JCC_1 %bb.2, 5, implicit $eflags - ; ALL: bb.1.cond.false: - ; ALL: successors: %bb.2(0x80000000) - ; ALL: bb.2.cond.end: - ; ALL: [[PHI:%[0-9]+]]:fr64 = PHI [[COPY4]], %bb.1, [[COPY2]], %bb.0 - ; ALL: [[COPY5:%[0-9]+]]:vr128 = COPY [[PHI]] - ; ALL: $xmm0 = COPY [[COPY5]] - ; ALL: RET 0, implicit $xmm0 + ; ALL-NEXT: successors: %bb.2(0x40000000), %bb.1(0x40000000) + ; ALL-NEXT: liveins: $edi, $xmm0, $xmm1 + ; ALL-NEXT: {{ $}} + ; ALL-NEXT: [[COPY:%[0-9]+]]:gr32 = COPY $edi + ; ALL-NEXT: [[COPY1:%[0-9]+]]:vr128 = COPY $xmm0 + ; ALL-NEXT: [[COPY2:%[0-9]+]]:fr64 = COPY [[COPY1]] + ; ALL-NEXT: [[COPY3:%[0-9]+]]:vr128 = COPY $xmm1 + ; ALL-NEXT: [[COPY4:%[0-9]+]]:fr64 = COPY [[COPY3]] + ; ALL-NEXT: [[MOV32r0_:%[0-9]+]]:gr32 = MOV32r0 implicit-def $eflags + ; ALL-NEXT: CMP32rr [[COPY]], [[MOV32r0_]], implicit-def $eflags + ; ALL-NEXT: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 15, implicit $eflags + ; ALL-NEXT: TEST8ri [[SETCCr]], 1, implicit-def $eflags + ; ALL-NEXT: JCC_1 %bb.2, 5, implicit $eflags + ; ALL-NEXT: {{ $}} + ; ALL-NEXT: bb.1.cond.false: + ; ALL-NEXT: successors: %bb.2(0x80000000) + ; ALL-NEXT: {{ $}} + ; ALL-NEXT: {{ $}} + ; ALL-NEXT: bb.2.cond.end: + ; ALL-NEXT: [[PHI:%[0-9]+]]:fr64 = PHI [[COPY4]], %bb.1, [[COPY2]], %bb.0 + ; ALL-NEXT: [[COPY5:%[0-9]+]]:vr128 = COPY [[PHI]] + ; ALL-NEXT: $xmm0 = COPY [[COPY5]] + ; ALL-NEXT: RET 0, implicit $xmm0 bb.1.entry: successors: %bb.3(0x40000000), %bb.2(0x40000000) liveins: $edi, $xmm0, $xmm1 diff --git a/llvm/test/tools/UpdateTestChecks/update_mir_test_checks/Inputs/x86-condbr.mir.expected b/llvm/test/tools/UpdateTestChecks/update_mir_test_checks/Inputs/x86-condbr.mir.expected --- a/llvm/test/tools/UpdateTestChecks/update_mir_test_checks/Inputs/x86-condbr.mir.expected +++ b/llvm/test/tools/UpdateTestChecks/update_mir_test_checks/Inputs/x86-condbr.mir.expected @@ -29,20 +29,23 @@ body: | ; CHECK-LABEL: name: test ; CHECK: bb.0.entry: - ; CHECK: successors: %bb.1(0x40000000), %bb.2(0x40000000) - ; CHECK: [[COPY:%[0-9]+]]:gr32 = COPY $edi - ; CHECK: [[MOV32r0_:%[0-9]+]]:gr32 = MOV32r0 implicit-def $eflags - ; CHECK: [[MOV32ri:%[0-9]+]]:gr32 = MOV32ri 1 - ; CHECK: [[COPY1:%[0-9]+]]:gr8 = COPY [[COPY]].sub_8bit - ; CHECK: TEST8ri [[COPY1]], 1, implicit-def $eflags - ; CHECK: JCC_1 %bb.1, 5, implicit $eflags - ; CHECK: JMP_1 %bb.2 - ; CHECK: bb.1.true: - ; CHECK: $eax = COPY [[MOV32r0_]] - ; CHECK: RET 0, implicit $eax - ; CHECK: bb.2.false: - ; CHECK: $eax = COPY [[MOV32ri]] - ; CHECK: RET 0, implicit $eax + ; CHECK-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) + ; CHECK-NEXT: {{ $}} + ; CHECK-NEXT: [[COPY:%[0-9]+]]:gr32 = COPY $edi + ; CHECK-NEXT: [[MOV32r0_:%[0-9]+]]:gr32 = MOV32r0 implicit-def $eflags + ; CHECK-NEXT: [[MOV32ri:%[0-9]+]]:gr32 = MOV32ri 1 + ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gr8 = COPY [[COPY]].sub_8bit + ; CHECK-NEXT: TEST8ri [[COPY1]], 1, implicit-def $eflags + ; CHECK-NEXT: JCC_1 %bb.1, 5, implicit $eflags + ; CHECK-NEXT: JMP_1 %bb.2 + ; CHECK-NEXT: {{ $}} + ; CHECK-NEXT: bb.1.true: + ; CHECK-NEXT: $eax = COPY [[MOV32r0_]] + ; CHECK-NEXT: RET 0, implicit $eax + ; CHECK-NEXT: {{ $}} + ; CHECK-NEXT: bb.2.false: + ; CHECK-NEXT: $eax = COPY [[MOV32ri]] + ; CHECK-NEXT: RET 0, implicit $eax bb.1.entry: successors: %bb.2(0x40000000), %bb.3(0x40000000) liveins: $edi diff --git a/llvm/utils/update_mir_test_checks.py b/llvm/utils/update_mir_test_checks.py --- a/llvm/utils/update_mir_test_checks.py +++ b/llvm/utils/update_mir_test_checks.py @@ -220,10 +220,13 @@ check = '{:>{}}; {}'.format('', indent, prefix) output_lines.append('{}-LABEL: name: {}'.format(check, func_name)) + first_check = True vreg_map = {} for func_line in func_body: if not func_line.strip(): + # The mir printer prints leading whitespace so we can't use CHECK-EMPTY: + output_lines.append(check + '-NEXT: {{' + func_line + '$}}') continue m = VREG_DEF_RE.match(func_line) if m: @@ -235,7 +238,9 @@ for number, name in vreg_map.items(): func_line = re.sub(r'{}\b'.format(number), '[[{}]]'.format(name), func_line) - check_line = '{}: {}'.format(check, func_line[indent:]).rstrip() + filecheck_directive = check if first_check else check + '-NEXT' + first_check = False + check_line = '{}: {}'.format(filecheck_directive, func_line[indent:]).rstrip() output_lines.append(check_line)