Diff
checker
Texto
Texto
Imagens
Documentos
Excel
Pastas
Legal
Enterprise
Aplicativo para desktop
Preços
Fazer login
Baixar o Diffchecker Desktop
Comparar texto
Encontre a diferença entre dois arquivos de texto
Ferramentas
Histórico
Editor live
Recolher inalteradas
Sem quebra de linha
Layout
Dividido
Unificado
Nível de detalhe
Inteligente
Palavra
Caractere
Realce de sintaxe
Escolher sintaxe
Ignorar
Transformar texto
Ir à primeira mudança
Editar entrada
Diffchecker Desktop
A maneira mais segura de usar o Diffchecker. Obtenha o aplicativo Diffchecker Desktop: seus diffs nunca saem do seu computador!
Obter Desktop
pr41750
Criado
há 3 anos
O diff nunca expira
Limpar
Exportar
Compartilhar
Explicar
11 remoções
Linhas
Total
Removido
Caracteres
Total
Removido
Para continuar usando este recurso, atualize para
Diff
checker
Pro
Ver preços
157 linhas
Copiar tudo
23 adições
Linhas
Total
Adicionado
Caracteres
Total
Adicionado
Para continuar usando este recurso, atualize para
Diff
checker
Pro
Ver preços
171 linhas
Copiar tudo
Copiar
Copiado
Copiar
Copiado
xgupta@archlinux ~/compiler/llvm-project/build/bin (main?) $ cat
~/Downloads/reproducer.mir
xgupta@archlinux ~/compiler/llvm-project/build/bin (main?) $ cat
after-pass
--- |
--- |
Copiar
Copiado
Copiar
Copiado
; ModuleID = '/home/xgupta/Downloads/reproducer.mir'
source_filename = "/home/xgupta/Downloads/reproducer.mir"
target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
target triple = "aarch64-none-linux-gnu"
define dso_local void @tc_main(i32 %segment_index, i32 %num_segments, i16* nocapture %scores, i8* nocapture readonly %arr_segments_ptr) local_unnamed_addr {
define dso_local void @tc_main(i32 %segment_index, i32 %num_segments, i16* nocapture %scores, i8* nocapture readonly %arr_segments_ptr) local_unnamed_addr {
entry:
entry:
br label %while.body
br label %while.body
while.body: ; preds = %if.end8, %entry
while.body: ; preds = %if.end8, %entry
%0 = bitcast i8* %arr_segments_ptr to i16*
%0 = bitcast i8* %arr_segments_ptr to i16*
%1 = load i16, i16* %0, align 2
%1 = load i16, i16* %0, align 2
%conv = sext i16 %1 to i32
%conv = sext i16 %1 to i32
%cmp = icmp sgt i16 %1, 0
%cmp = icmp sgt i16 %1, 0
br i1 %cmp, label %if.then, label %if.else
br i1 %cmp, label %if.then, label %if.else
if.then: ; preds = %while.body
if.then: ; preds = %while.body
%div = sdiv i32 65535, %conv
%div = sdiv i32 65535, %conv
%mul = shl nsw i32 %div, 3
%mul = shl nsw i32 %div, 3
br label %if.end8
br label %if.end8
if.else: ; preds = %while.body
if.else: ; preds = %while.body
%2 = trunc i32 %conv to i16
%2 = trunc i32 %conv to i16
%cmp2 = icmp slt i16 %2, 0
%cmp2 = icmp slt i16 %2, 0
br i1 %cmp2, label %if.then4, label %if.end8
br i1 %cmp2, label %if.then4, label %if.end8
if.then4: ; preds = %if.else
if.then4: ; preds = %if.else
%div6 = sdiv i32 65535, %conv
%div6 = sdiv i32 65535, %conv
%mul7 = shl nsw i32 %div6, 3
%mul7 = shl nsw i32 %div6, 3
br label %if.end8
br label %if.end8
if.end8: ; preds = %if.then4, %if.else, %if.then
if.end8: ; preds = %if.then4, %if.else, %if.then
%ye.0 = phi i32 [ 8, %if.then ], [ %mul7, %if.then4 ], [ 8, %if.else ]
%ye.0 = phi i32 [ 8, %if.then ], [ %mul7, %if.then4 ], [ 8, %if.else ]
%ys.0 = phi i32 [ %mul, %if.then ], [ 8, %if.then4 ], [ 8, %if.else ]
%ys.0 = phi i32 [ %mul, %if.then ], [ 8, %if.then4 ], [ 8, %if.else ]
%add = add nsw i32 %ys.0, %ye.0
%add = add nsw i32 %ys.0, %ye.0
%conv9 = trunc i32 %add to i16
%conv9 = trunc i32 %add to i16
store i16 %conv9, i16* %scores, align 2
store i16 %conv9, i16* %scores, align 2
br label %while.body
br label %while.body
}
}
...
...
---
---
name: tc_main
name: tc_main
alignment: 2
alignment: 2
exposesReturnsTwice: false
exposesReturnsTwice: false
legalized: false
legalized: false
regBankSelected: false
regBankSelected: false
selected: false
selected: false
failedISel: false
failedISel: false
tracksRegLiveness: true
tracksRegLiveness: true
hasWinCFI: false
hasWinCFI: false
Copiar
Copiado
Copiar
Copiado
registers:
callsEHReturn: false
callsUnwindInit: false
hasEHCatchret: false
hasEHScopes: false
hasEHFunclets: false
failsVerification: false
tracksDebugUserValues: false
registers:
- { id: 0, class: gpr32, preferred-register: '' }
- { id: 0, class: gpr32, preferred-register: '' }
- { id: 1, class: gpr32all, preferred-register: '' }
- { id: 1, class: gpr32all, preferred-register: '' }
- { id: 2, class: gpr32all, preferred-register: '' }
- { id: 2, class: gpr32all, preferred-register: '' }
- { id: 3, class: gpr32, preferred-register: '' }
- { id: 3, class: gpr32, preferred-register: '' }
- { id: 4, class: gpr32, preferred-register: '' }
- { id: 4, class: gpr32, preferred-register: '' }
- { id: 5, class: gpr32, preferred-register: '' }
- { id: 5, class: gpr32, preferred-register: '' }
- { id: 6, class: gpr32, preferred-register: '' }
- { id: 6, class: gpr32, preferred-register: '' }
- { id: 7, class: gpr64common, preferred-register: '' }
- { id: 7, class: gpr64common, preferred-register: '' }
- { id: 8, class: gpr64common, preferred-register: '' }
- { id: 8, class: gpr64common, preferred-register: '' }
- { id: 9, class: gpr32common, preferred-register: '' }
- { id: 9, class: gpr32common, preferred-register: '' }
- { id: 10, class: gpr32, preferred-register: '' }
- { id: 10, class: gpr32, preferred-register: '' }
- { id: 11, class: gpr32all, preferred-register: '' }
- { id: 11, class: gpr32all, preferred-register: '' }
- { id: 12, class: gpr32, preferred-register: '' }
- { id: 12, class: gpr32, preferred-register: '' }
- { id: 13, class: gpr32all, preferred-register: '' }
- { id: 13, class: gpr32all, preferred-register: '' }
- { id: 14, class: gpr32, preferred-register: '' }
- { id: 14, class: gpr32, preferred-register: '' }
- { id: 15, class: gpr32, preferred-register: '' }
- { id: 15, class: gpr32, preferred-register: '' }
- { id: 16, class: gpr32, preferred-register: '' }
- { id: 16, class: gpr32, preferred-register: '' }
- { id: 17, class: gpr32, preferred-register: '' }
- { id: 17, class: gpr32, preferred-register: '' }
- { id: 18, class: gpr32all, preferred-register: '' }
- { id: 18, class: gpr32all, preferred-register: '' }
- { id: 19, class: gpr32, preferred-register: '' }
- { id: 19, class: gpr32, preferred-register: '' }
- { id: 20, class: gpr32, preferred-register: '' }
- { id: 20, class: gpr32, preferred-register: '' }
- { id: 21, class: gpr32, preferred-register: '' }
- { id: 21, class: gpr32, preferred-register: '' }
- { id: 22, class: gpr32, preferred-register: '' }
- { id: 22, class: gpr32, preferred-register: '' }
- { id: 23, class: gpr32, preferred-register: '' }
- { id: 23, class: gpr32, preferred-register: '' }
Copiar
Copiado
Copiar
Copiado
liveins:
liveins:
- { reg: '$x2', virtual-reg: '%7' }
- { reg: '$x2', virtual-reg: '%7' }
- { reg: '$x3', virtual-reg: '%8' }
- { reg: '$x3', virtual-reg: '%8' }
Copiar
Copiado
Copiar
Copiado
frameInfo:
frameInfo:
isFrameAddressTaken: false
isFrameAddressTaken: false
isReturnAddressTaken: false
isReturnAddressTaken: false
hasStackMap: false
hasStackMap: false
hasPatchPoint: false
hasPatchPoint: false
stackSize: 0
stackSize: 0
offsetAdjustment: 0
offsetAdjustment: 0
Copiar
Copiado
Copiar
Copiado
maxAlignment:
0
maxAlignment:
1
adjustsStack: false
adjustsStack: false
hasCalls: false
hasCalls: false
stackProtector: ''
stackProtector: ''
Copiar
Copiado
Copiar
Copiado
functionContext: ''
maxCallFrameSize: 0
maxCallFrameSize: 0
cvBytesOfCalleeSavedRegisters: 0
cvBytesOfCalleeSavedRegisters: 0
hasOpaqueSPAdjustment: false
hasOpaqueSPAdjustment: false
hasVAStart: false
hasVAStart: false
hasMustTailInVarArgFunc: false
hasMustTailInVarArgFunc: false
Copiar
Copiado
Copiar
Copiado
hasTailCall: false
localFrameSize: 0
localFrameSize: 0
savePoint: ''
savePoint: ''
restorePoint: ''
restorePoint: ''
fixedStack: []
fixedStack: []
stack: []
stack: []
Copiar
Copiado
Copiar
Copiado
callSites: []
debugValueSubstitutions: []
constants: []
constants: []
machineFunctionInfo: {}
machineFunctionInfo: {}
body: |
body: |
bb.0.entry:
bb.0.entry:
successors: %bb.1(0x80000000)
successors: %bb.1(0x80000000)
liveins: $x2, $x3
liveins: $x2, $x3
%8:gpr64common = COPY $x3
%8:gpr64common = COPY $x3
%7:gpr64common = COPY $x2
%7:gpr64common = COPY $x2
%19:gpr32 = MOVi32imm 65535
%19:gpr32 = MOVi32imm 65535
bb.1.while.body:
bb.1.while.body:
successors: %bb.2(0x50000000), %bb.3(0x30000000)
successors: %bb.2(0x50000000), %bb.3(0x30000000)
Copiar
Copiado
Copiar
Copiado
%9:gpr32common = LDRSHWui %8, 0 :: (load
2
from %ir.0)
%9:gpr32common = LDRSHWui %8, 0 :: (load
(s16)
from %ir.0)
%0:gpr32 = COPY %9
%0:gpr32 = COPY %9
%10:gpr32 = SUBSWri %9, 1, 0, implicit-def $nzcv
%10:gpr32 = SUBSWri %9, 1, 0, implicit-def $nzcv
Bcc 11, %bb.3, implicit $nzcv
Bcc 11, %bb.3, implicit $nzcv
B %bb.2
B %bb.2
bb.2.if.then:
bb.2.if.then:
successors: %bb.5(0x80000000)
successors: %bb.5(0x80000000)
Copiar
Copiado
Copiar
Copiado
%20:gpr32 = SDIVWr %19, %
0
%20:gpr32 = SDIVWr %19, %
9
%21:gpr32 = nsw UBFMWri killed %20, 29, 28
%21:gpr32 = nsw UBFMWri killed %20, 29, 28
%22:gpr32 = MOVi32imm 8
%22:gpr32 = MOVi32imm 8
%18:gpr32all = COPY %22
%18:gpr32all = COPY %22
%1:gpr32all = COPY %21
%1:gpr32all = COPY %21
B %bb.5
B %bb.5
bb.3.if.else:
bb.3.if.else:
successors: %bb.4(0x30000000), %bb.5(0x50000000)
successors: %bb.4(0x30000000), %bb.5(0x50000000)
%12:gpr32 = MOVi32imm 8
%12:gpr32 = MOVi32imm 8
%11:gpr32all = COPY %12
%11:gpr32all = COPY %12
TBZW %0, 31, %bb.5
TBZW %0, 31, %bb.5
B %bb.4
B %bb.4
bb.4.if.then4:
bb.4.if.then4:
successors: %bb.5(0x80000000)
successors: %bb.5(0x80000000)
Copiar
Copiado
Copiar
Copiado
%15:gpr32 = SDIVWr %19, %
0
%15:gpr32 = SDIVWr %19, %
9
%16:gpr32 = nsw UBFMWri killed %15, 29, 28
%16:gpr32 = nsw UBFMWri killed %15, 29, 28
%17:gpr32 = MOVi32imm 8
%17:gpr32 = MOVi32imm 8
%13:gpr32all = COPY %17
%13:gpr32all = COPY %17
%2:gpr32all = COPY %16
%2:gpr32all = COPY %16
bb.5.if.end8:
bb.5.if.end8:
successors: %bb.1(0x80000000)
successors: %bb.1(0x80000000)
%3:gpr32 = PHI %11, %bb.3, %2, %bb.4, %18, %bb.2
%3:gpr32 = PHI %11, %bb.3, %2, %bb.4, %18, %bb.2
%4:gpr32 = PHI %11, %bb.3, %13, %bb.4, %1, %bb.2
%4:gpr32 = PHI %11, %bb.3, %13, %bb.4, %1, %bb.2
%23:gpr32 = nsw ADDWrr %4, %3
%23:gpr32 = nsw ADDWrr %4, %3
Copiar
Copiado
Copiar
Copiado
STRHHui killed %23, %7, 0 :: (store
2
into %ir.scores)
STRHHui killed %23, %7, 0 :: (store
(s16)
into %ir.scores)
B %bb.1
B %bb.1
...
...
Diferenças salvas
Texto original
Abrir arquivo
xgupta@archlinux ~/compiler/llvm-project/build/bin (main?) $ cat ~/Downloads/reproducer.mir --- | define dso_local void @tc_main(i32 %segment_index, i32 %num_segments, i16* nocapture %scores, i8* nocapture readonly %arr_segments_ptr) local_unnamed_addr { entry: br label %while.body while.body: ; preds = %if.end8, %entry %0 = bitcast i8* %arr_segments_ptr to i16* %1 = load i16, i16* %0, align 2 %conv = sext i16 %1 to i32 %cmp = icmp sgt i16 %1, 0 br i1 %cmp, label %if.then, label %if.else if.then: ; preds = %while.body %div = sdiv i32 65535, %conv %mul = shl nsw i32 %div, 3 br label %if.end8 if.else: ; preds = %while.body %2 = trunc i32 %conv to i16 %cmp2 = icmp slt i16 %2, 0 br i1 %cmp2, label %if.then4, label %if.end8 if.then4: ; preds = %if.else %div6 = sdiv i32 65535, %conv %mul7 = shl nsw i32 %div6, 3 br label %if.end8 if.end8: ; preds = %if.then4, %if.else, %if.then %ye.0 = phi i32 [ 8, %if.then ], [ %mul7, %if.then4 ], [ 8, %if.else ] %ys.0 = phi i32 [ %mul, %if.then ], [ 8, %if.then4 ], [ 8, %if.else ] %add = add nsw i32 %ys.0, %ye.0 %conv9 = trunc i32 %add to i16 store i16 %conv9, i16* %scores, align 2 br label %while.body } ... --- name: tc_main alignment: 2 exposesReturnsTwice: false legalized: false regBankSelected: false selected: false failedISel: false tracksRegLiveness: true hasWinCFI: false registers: - { id: 0, class: gpr32, preferred-register: '' } - { id: 1, class: gpr32all, preferred-register: '' } - { id: 2, class: gpr32all, preferred-register: '' } - { id: 3, class: gpr32, preferred-register: '' } - { id: 4, class: gpr32, preferred-register: '' } - { id: 5, class: gpr32, preferred-register: '' } - { id: 6, class: gpr32, preferred-register: '' } - { id: 7, class: gpr64common, preferred-register: '' } - { id: 8, class: gpr64common, preferred-register: '' } - { id: 9, class: gpr32common, preferred-register: '' } - { id: 10, class: gpr32, preferred-register: '' } - { id: 11, class: gpr32all, preferred-register: '' } - { id: 12, class: gpr32, preferred-register: '' } - { id: 13, class: gpr32all, preferred-register: '' } - { id: 14, class: gpr32, preferred-register: '' } - { id: 15, class: gpr32, preferred-register: '' } - { id: 16, class: gpr32, preferred-register: '' } - { id: 17, class: gpr32, preferred-register: '' } - { id: 18, class: gpr32all, preferred-register: '' } - { id: 19, class: gpr32, preferred-register: '' } - { id: 20, class: gpr32, preferred-register: '' } - { id: 21, class: gpr32, preferred-register: '' } - { id: 22, class: gpr32, preferred-register: '' } - { id: 23, class: gpr32, preferred-register: '' } liveins: - { reg: '$x2', virtual-reg: '%7' } - { reg: '$x3', virtual-reg: '%8' } frameInfo: isFrameAddressTaken: false isReturnAddressTaken: false hasStackMap: false hasPatchPoint: false stackSize: 0 offsetAdjustment: 0 maxAlignment: 0 adjustsStack: false hasCalls: false stackProtector: '' maxCallFrameSize: 0 cvBytesOfCalleeSavedRegisters: 0 hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 savePoint: '' restorePoint: '' fixedStack: [] stack: [] constants: [] machineFunctionInfo: {} body: | bb.0.entry: successors: %bb.1(0x80000000) liveins: $x2, $x3 %8:gpr64common = COPY $x3 %7:gpr64common = COPY $x2 %19:gpr32 = MOVi32imm 65535 bb.1.while.body: successors: %bb.2(0x50000000), %bb.3(0x30000000) %9:gpr32common = LDRSHWui %8, 0 :: (load 2 from %ir.0) %0:gpr32 = COPY %9 %10:gpr32 = SUBSWri %9, 1, 0, implicit-def $nzcv Bcc 11, %bb.3, implicit $nzcv B %bb.2 bb.2.if.then: successors: %bb.5(0x80000000) %20:gpr32 = SDIVWr %19, %0 %21:gpr32 = nsw UBFMWri killed %20, 29, 28 %22:gpr32 = MOVi32imm 8 %18:gpr32all = COPY %22 %1:gpr32all = COPY %21 B %bb.5 bb.3.if.else: successors: %bb.4(0x30000000), %bb.5(0x50000000) %12:gpr32 = MOVi32imm 8 %11:gpr32all = COPY %12 TBZW %0, 31, %bb.5 B %bb.4 bb.4.if.then4: successors: %bb.5(0x80000000) %15:gpr32 = SDIVWr %19, %0 %16:gpr32 = nsw UBFMWri killed %15, 29, 28 %17:gpr32 = MOVi32imm 8 %13:gpr32all = COPY %17 %2:gpr32all = COPY %16 bb.5.if.end8: successors: %bb.1(0x80000000) %3:gpr32 = PHI %11, %bb.3, %2, %bb.4, %18, %bb.2 %4:gpr32 = PHI %11, %bb.3, %13, %bb.4, %1, %bb.2 %23:gpr32 = nsw ADDWrr %4, %3 STRHHui killed %23, %7, 0 :: (store 2 into %ir.scores) B %bb.1 ...
Texto alterado
Abrir arquivo
xgupta@archlinux ~/compiler/llvm-project/build/bin (main?) $ cat after-pass --- | ; ModuleID = '/home/xgupta/Downloads/reproducer.mir' source_filename = "/home/xgupta/Downloads/reproducer.mir" target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128" target triple = "aarch64-none-linux-gnu" define dso_local void @tc_main(i32 %segment_index, i32 %num_segments, i16* nocapture %scores, i8* nocapture readonly %arr_segments_ptr) local_unnamed_addr { entry: br label %while.body while.body: ; preds = %if.end8, %entry %0 = bitcast i8* %arr_segments_ptr to i16* %1 = load i16, i16* %0, align 2 %conv = sext i16 %1 to i32 %cmp = icmp sgt i16 %1, 0 br i1 %cmp, label %if.then, label %if.else if.then: ; preds = %while.body %div = sdiv i32 65535, %conv %mul = shl nsw i32 %div, 3 br label %if.end8 if.else: ; preds = %while.body %2 = trunc i32 %conv to i16 %cmp2 = icmp slt i16 %2, 0 br i1 %cmp2, label %if.then4, label %if.end8 if.then4: ; preds = %if.else %div6 = sdiv i32 65535, %conv %mul7 = shl nsw i32 %div6, 3 br label %if.end8 if.end8: ; preds = %if.then4, %if.else, %if.then %ye.0 = phi i32 [ 8, %if.then ], [ %mul7, %if.then4 ], [ 8, %if.else ] %ys.0 = phi i32 [ %mul, %if.then ], [ 8, %if.then4 ], [ 8, %if.else ] %add = add nsw i32 %ys.0, %ye.0 %conv9 = trunc i32 %add to i16 store i16 %conv9, i16* %scores, align 2 br label %while.body } ... --- name: tc_main alignment: 2 exposesReturnsTwice: false legalized: false regBankSelected: false selected: false failedISel: false tracksRegLiveness: true hasWinCFI: false callsEHReturn: false callsUnwindInit: false hasEHCatchret: false hasEHScopes: false hasEHFunclets: false failsVerification: false tracksDebugUserValues: false registers: - { id: 0, class: gpr32, preferred-register: '' } - { id: 1, class: gpr32all, preferred-register: '' } - { id: 2, class: gpr32all, preferred-register: '' } - { id: 3, class: gpr32, preferred-register: '' } - { id: 4, class: gpr32, preferred-register: '' } - { id: 5, class: gpr32, preferred-register: '' } - { id: 6, class: gpr32, preferred-register: '' } - { id: 7, class: gpr64common, preferred-register: '' } - { id: 8, class: gpr64common, preferred-register: '' } - { id: 9, class: gpr32common, preferred-register: '' } - { id: 10, class: gpr32, preferred-register: '' } - { id: 11, class: gpr32all, preferred-register: '' } - { id: 12, class: gpr32, preferred-register: '' } - { id: 13, class: gpr32all, preferred-register: '' } - { id: 14, class: gpr32, preferred-register: '' } - { id: 15, class: gpr32, preferred-register: '' } - { id: 16, class: gpr32, preferred-register: '' } - { id: 17, class: gpr32, preferred-register: '' } - { id: 18, class: gpr32all, preferred-register: '' } - { id: 19, class: gpr32, preferred-register: '' } - { id: 20, class: gpr32, preferred-register: '' } - { id: 21, class: gpr32, preferred-register: '' } - { id: 22, class: gpr32, preferred-register: '' } - { id: 23, class: gpr32, preferred-register: '' } liveins: - { reg: '$x2', virtual-reg: '%7' } - { reg: '$x3', virtual-reg: '%8' } frameInfo: isFrameAddressTaken: false isReturnAddressTaken: false hasStackMap: false hasPatchPoint: false stackSize: 0 offsetAdjustment: 0 maxAlignment: 1 adjustsStack: false hasCalls: false stackProtector: '' functionContext: '' maxCallFrameSize: 0 cvBytesOfCalleeSavedRegisters: 0 hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 savePoint: '' restorePoint: '' fixedStack: [] stack: [] callSites: [] debugValueSubstitutions: [] constants: [] machineFunctionInfo: {} body: | bb.0.entry: successors: %bb.1(0x80000000) liveins: $x2, $x3 %8:gpr64common = COPY $x3 %7:gpr64common = COPY $x2 %19:gpr32 = MOVi32imm 65535 bb.1.while.body: successors: %bb.2(0x50000000), %bb.3(0x30000000) %9:gpr32common = LDRSHWui %8, 0 :: (load (s16) from %ir.0) %0:gpr32 = COPY %9 %10:gpr32 = SUBSWri %9, 1, 0, implicit-def $nzcv Bcc 11, %bb.3, implicit $nzcv B %bb.2 bb.2.if.then: successors: %bb.5(0x80000000) %20:gpr32 = SDIVWr %19, %9 %21:gpr32 = nsw UBFMWri killed %20, 29, 28 %22:gpr32 = MOVi32imm 8 %18:gpr32all = COPY %22 %1:gpr32all = COPY %21 B %bb.5 bb.3.if.else: successors: %bb.4(0x30000000), %bb.5(0x50000000) %12:gpr32 = MOVi32imm 8 %11:gpr32all = COPY %12 TBZW %0, 31, %bb.5 B %bb.4 bb.4.if.then4: successors: %bb.5(0x80000000) %15:gpr32 = SDIVWr %19, %9 %16:gpr32 = nsw UBFMWri killed %15, 29, 28 %17:gpr32 = MOVi32imm 8 %13:gpr32all = COPY %17 %2:gpr32all = COPY %16 bb.5.if.end8: successors: %bb.1(0x80000000) %3:gpr32 = PHI %11, %bb.3, %2, %bb.4, %18, %bb.2 %4:gpr32 = PHI %11, %bb.3, %13, %bb.4, %1, %bb.2 %23:gpr32 = nsw ADDWrr %4, %3 STRHHui killed %23, %7, 0 :: (store (s16) into %ir.scores) B %bb.1 ...
Encontrar Diferença