Diff
checker
텍스트
텍스트
이미지
문서
Excel
폴더
Legal
Enterprise
데스크톱
요금제
로그인
데스크톱 앱 다운로드
텍스트 비교
두 텍스트 파일의 차이점을 찾아보세요
도구
기록
실시간 편집
변경 없는 행 숨기기
줄바꿈 비활성화
레이아웃
나란히 보기
합쳐 보기
비교 단위
스마트
단어
글자
구문 강조
언어 선택
제외
텍스트 변환
첫 변경으로
수정
Diffchecker Desktop
가장 안전하게 Diffchecker를 사용하는 방법. 데스크톱 앱을 사용하면 비교 데이터가 외부로 전송되지 않습니다!
데스크톱 앱 받기
pr41750
생성일
3년 전
비교 결과 만료 없음
초기화
내보내기
공유
설명
11 삭제
행
총
삭제
글자
총
삭제
이 기능을 계속 사용하려면 업그레이드해 주세요
Diff
checker
Pro
요금제 보기
157 행
복사
23 추가
행
총
추가
글자
총
추가
이 기능을 계속 사용하려면 업그레이드해 주세요
Diff
checker
Pro
요금제 보기
171 행
복사
복사
복사됨
복사
복사됨
xgupta@archlinux ~/compiler/llvm-project/build/bin (main?) $ cat
~/Downloads/reproducer.mir
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 {
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
복사
복사됨
복사
복사됨
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: '' }
복사
복사됨
복사
복사됨
liveins:
liveins:
- { reg: '$x2', virtual-reg: '%7' }
- { reg: '$x2', virtual-reg: '%7' }
- { reg: '$x3', virtual-reg: '%8' }
- { reg: '$x3', virtual-reg: '%8' }
복사
복사됨
복사
복사됨
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
복사
복사됨
복사
복사됨
maxAlignment:
0
maxAlignment:
1
adjustsStack: false
adjustsStack: false
hasCalls: false
hasCalls: false
stackProtector: ''
stackProtector: ''
복사
복사됨
복사
복사됨
functionContext: ''
maxCallFrameSize: 0
maxCallFrameSize: 0
cvBytesOfCalleeSavedRegisters: 0
cvBytesOfCalleeSavedRegisters: 0
hasOpaqueSPAdjustment: false
hasOpaqueSPAdjustment: false
hasVAStart: false
hasVAStart: false
hasMustTailInVarArgFunc: false
hasMustTailInVarArgFunc: false
복사
복사됨
복사
복사됨
hasTailCall: false
localFrameSize: 0
localFrameSize: 0
savePoint: ''
savePoint: ''
restorePoint: ''
restorePoint: ''
fixedStack: []
fixedStack: []
stack: []
stack: []
복사
복사됨
복사
복사됨
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)
복사
복사됨
복사
복사됨
%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)
복사
복사됨
복사
복사됨
%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)
복사
복사됨
복사
복사됨
%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
복사
복사됨
복사
복사됨
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
...
...
저장된 비교 결과
원본
파일 열기
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 ...
수정본
파일 열기
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 ...
비교하기