brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.6 KiB · d8d9b64 Raw
55 lines · plain
1# RUN: llc %s -o - -run-pass=peephole-opt | FileCheck %s2 3# Check that we don't optimize out a subs due to areCFlagsAccessedBetweenInstrs4# returning the wrong result; it should check the cneg before the subs which does5# modify cflags.6 7# CHECK-LABEL: f8# CHECK:      SUBSWrr9# CHECK-NEXT: SUBWrr10# CHECK-NEXT: CSNEGWr11# CHECK-NEXT: SUBSWri12# CHECK-NEXT: CSNEGWr13# CHECK-NEXT: Bcc14 15--- |16  target datalayout = "e-m:w-p:64:64-i32:32-i64:64-i128:128-n32:64-S128"17  target triple = "aarch64-w64-windows-gnu"18 19  define dso_local void @f() {20    ret void21  }22 23...24---25name:            f26registers:27  - { id: 43, class: gpr32, preferred-register: '' }28  - { id: 44, class: gpr32, preferred-register: '' }29  - { id: 46, class: gpr32, preferred-register: '' }30  - { id: 47, class: gpr32, preferred-register: '' }31  - { id: 48, class: gpr32common, preferred-register: '' }32  - { id: 49, class: gpr32common, preferred-register: '' }33  - { id: 50, class: gpr32, preferred-register: '' }34  - { id: 51, class: gpr32, preferred-register: '' }35  - { id: 52, class: gpr32, preferred-register: '' }36  - { id: 53, class: gpr32, preferred-register: '' }37body:             |38  bb.0:39    successors: %bb.040 41    %43 = MOVi32imm 142    %44 = MOVi32imm 143    %46 = MOVi32imm 144    %47 = MOVi32imm 145    %48 = nsw SUBSWrr killed %43, killed %46, implicit-def dead $nzcv46    %49 = nsw SUBSWrr killed %44, killed %47, implicit-def dead $nzcv47    %50 = SUBSWri %48, 0, 0, implicit-def $nzcv48    %51 = CSNEGWr %48, %48, 5, implicit $nzcv49    %52 = SUBSWri %49, 0, 0, implicit-def $nzcv50    %53 = CSNEGWr %49, %49, 5, implicit $nzcv51    Bcc 1, %bb.0, implicit $nzcv52    RET_ReallyLR53 54...55