forked from OSchip/llvm-project
[InstCombine] Add test for iterator invalidation bug; NFC
This commit is contained in:
parent
2a43688a0a
commit
fa63234093
|
@ -0,0 +1,36 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||
; RUN: opt -S -instcombine < %s | FileCheck %s
|
||||
|
||||
@Q = internal unnamed_addr global double 1.000000e+00, align 8
|
||||
|
||||
define double @test(i1 %c, i64* %p) {
|
||||
; CHECK-LABEL: @test(
|
||||
; CHECK-NEXT: entry:
|
||||
; CHECK-NEXT: br i1 [[C:%.*]], label [[IF:%.*]], label [[END:%.*]]
|
||||
; CHECK: if:
|
||||
; CHECK-NEXT: [[LOAD:%.*]] = load i64, i64* bitcast (double* @Q to i64*), align 8
|
||||
; CHECK-NEXT: [[TMP0:%.*]] = bitcast i64 [[LOAD]] to double
|
||||
; CHECK-NEXT: [[PHITMP:%.*]] = bitcast i64 [[LOAD]] to double
|
||||
; CHECK-NEXT: br label [[END]]
|
||||
; CHECK: end:
|
||||
; CHECK-NEXT: [[TMP1:%.*]] = phi double [ 0.000000e+00, [[ENTRY:%.*]] ], [ [[TMP0]], [[IF]] ]
|
||||
; CHECK-NEXT: [[PHI:%.*]] = phi double [ 0.000000e+00, [[ENTRY]] ], [ [[PHITMP]], [[IF]] ]
|
||||
; CHECK-NEXT: [[TMP2:%.*]] = bitcast i64* [[P:%.*]] to double*
|
||||
; CHECK-NEXT: store double [[TMP1]], double* [[TMP2]], align 8
|
||||
; CHECK-NEXT: ret double [[PHI]]
|
||||
;
|
||||
entry:
|
||||
br i1 %c, label %if, label %end
|
||||
|
||||
if:
|
||||
%load = load i64, i64* bitcast (double* @Q to i64*), align 8
|
||||
br label %end
|
||||
|
||||
end:
|
||||
%phi = phi i64 [ 0, %entry ], [ %load, %if ]
|
||||
store i64 %phi, i64* %p, align 8
|
||||
%cast = bitcast i64 %phi to double
|
||||
ret double %cast
|
||||
|
||||
uselistorder i64 %phi, { 1, 0 }
|
||||
}
|
Loading…
Reference in New Issue