74 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -o - %s -mtriple=x86_64-- -run-pass peephole-opt -mattr=+ndd | FileCheck %s3 4---5name: opt_redundant_flags_06body: |7 bb.0:8 ; CHECK-LABEL: name: opt_redundant_flags_09 ; CHECK: [[COPY:%[0-9]+]]:gr32 = COPY $esi10 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gr32 = COPY $edi11 ; CHECK-NEXT: [[SUB32rr_ND:%[0-9]+]]:gr32 = SUB32rr_ND [[COPY]], [[COPY1]], implicit-def $eflags12 ; CHECK-NEXT: $eax = COPY [[SUB32rr_ND]]13 ; CHECK-NEXT: $bl = SETCCr 2, implicit $eflags14 %0:gr32 = COPY $esi15 %1:gr32 = COPY $edi16 %2:gr32 = SUB32rr_ND %0, %1, implicit-def dead $eflags17 $eax = COPY %218 ; CMP should be removed.19 CMP32rr %0, %1, implicit-def $eflags20 $bl = SETCCr 2, implicit $eflags21...22---23name: opt_redundant_flags_124body: |25 bb.0:26 ; CHECK-LABEL: name: opt_redundant_flags_127 ; CHECK: [[COPY:%[0-9]+]]:gr32 = COPY $esi28 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gr32 = COPY $edi29 ; CHECK-NEXT: [[SUB32rr_ND:%[0-9]+]]:gr32 = SUB32rr_ND [[COPY]], [[COPY1]], implicit-def $eflags30 ; CHECK-NEXT: $eax = COPY [[SUB32rr_ND]]31 ; CHECK-NEXT: $bl = SETCCr 6, implicit $eflags32 %0:gr32 = COPY $esi33 %1:gr32 = COPY $edi34 %2:gr32 = SUB32rr_ND %0, %1, implicit-def dead $eflags35 $eax = COPY %236 ; CMP should be removed.37 CMP32rr %1, %0, implicit-def $eflags38 $bl = SETCCr 3, implicit $eflags39...40---41name: opt_redundant_flags_242body: |43 bb.0:44 ; CHECK-LABEL: name: opt_redundant_flags_245 ; CHECK: [[COPY:%[0-9]+]]:gr32 = COPY $esi46 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gr32 = COPY $edi47 ; CHECK-NEXT: [[SUB32rr_ND:%[0-9]+]]:gr32 = SUB32rr_ND [[COPY]], [[COPY1]], implicit-def $eflags48 ; CHECK-NEXT: $cl = SETCCr 2, implicit $eflags49 ; CHECK-NEXT: $eax = COPY [[SUB32rr_ND]]50 ; CHECK-NEXT: $bl = SETCCr 2, implicit $eflags51 %0:gr32 = COPY $esi52 %1:gr32 = COPY $edi53 %2:gr32 = SUB32rr_ND %0, %1, implicit-def $eflags54 ; an extra eflags reader shouldn't stop optimization.55 $cl = SETCCr 2, implicit $eflags56 $eax = COPY %257 CMP32rr %0, %1, implicit-def $eflags58 $bl = SETCCr 2, implicit $eflags59...60---61name: opt_zerocmp_user_062body: |63 bb.0:64 ; CHECK-LABEL: name: opt_zerocmp_user_065 ; CHECK: [[COPY:%[0-9]+]]:gr32 = COPY $esi66 ; CHECK-NEXT: [[NEG32r_ND:%[0-9]+]]:gr32 = NEG32r_ND [[COPY]], implicit-def $eflags67 ; CHECK-NEXT: $al = SETCCr 3, implicit $eflags68 %0:gr32 = COPY $esi69 %1:gr32 = NEG32r_ND %0, implicit-def dead $eflags70 ; TEST should be removed.71 TEST32rr %0, %0, implicit-def $eflags72 $al = SETCCr 4, implicit $eflags73...74