Diff
checker
Texte
Texte
Images
Documents
Excel
Dossiers
Legal
Enterprise
Application de bureau
Prix
Se connecter
Télécharger Diffchecker Desktop
Comparer le texte
Trouver la différence entre deux fichiers texte
Outils
Historique
Éditeur live
Cacher identiques
Sans retour à la ligne
Vue
Divisé
Unifié
Niveau de précision
Intelligent
Mot
Caractère
Coloration syntaxique
Choisir la syntaxe
Ignorer
Transformer le texte
Aller au premier écart
Modifier l'entrée
Diffchecker Desktop
La façon la plus sécurisée d'utiliser Diffchecker. Obtenez l'application Diffchecker Desktop : vos diffs ne quittent jamais votre ordinateur !
Obtenir Desktop
pr41750
Créé
il y a 3 ans
Le diff n'expire jamais
Effacer
Exporter
Partager
Expliquer
11 suppressions
Lignes
Total
Supprimé
Caractères
Total
Supprimé
Pour continuer à utiliser cette fonctionnalité, passez à
Diff
checker
Pro
Voir les prix
157 lignes
Copier tout
23 ajouts
Lignes
Total
Ajouté
Caractères
Total
Ajouté
Pour continuer à utiliser cette fonctionnalité, passez à
Diff
checker
Pro
Voir les prix
171 lignes
Copier tout
Copier
Copié
Copier
Copié
xgupta@archlinux ~/compiler/llvm-project/build/bin (main?) $ cat
~/Downloads/reproducer.mir
xgupta@archlinux ~/compiler/llvm-project/build/bin (main?) $ cat
after-pass
--- |
--- |
Copier
Copié
Copier
Copié
; 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
Copier
Copié
Copier
Copié
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: '' }
Copier
Copié
Copier
Copié
liveins:
liveins:
- { reg: '$x2', virtual-reg: '%7' }
- { reg: '$x2', virtual-reg: '%7' }
- { reg: '$x3', virtual-reg: '%8' }
- { reg: '$x3', virtual-reg: '%8' }
Copier
Copié
Copier
Copié
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
Copier
Copié
Copier
Copié
maxAlignment:
0
maxAlignment:
1
adjustsStack: false
adjustsStack: false
hasCalls: false
hasCalls: false
stackProtector: ''
stackProtector: ''
Copier
Copié
Copier
Copié
functionContext: ''
maxCallFrameSize: 0
maxCallFrameSize: 0
cvBytesOfCalleeSavedRegisters: 0
cvBytesOfCalleeSavedRegisters: 0
hasOpaqueSPAdjustment: false
hasOpaqueSPAdjustment: false
hasVAStart: false
hasVAStart: false
hasMustTailInVarArgFunc: false
hasMustTailInVarArgFunc: false
Copier
Copié
Copier
Copié
hasTailCall: false
localFrameSize: 0
localFrameSize: 0
savePoint: ''
savePoint: ''
restorePoint: ''
restorePoint: ''
fixedStack: []
fixedStack: []
stack: []
stack: []
Copier
Copié
Copier
Copié
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)
Copier
Copié
Copier
Copié
%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)
Copier
Copié
Copier
Copié
%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)
Copier
Copié
Copier
Copié
%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
Copier
Copié
Copier
Copié
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
...
...
Différences enregistrées
Texte d'origine
Ouvrir un fichier
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 ...
Texte modifié
Ouvrir un fichier
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 ...
Trouver la différence