The only interesting test change is in @PR31262, where the following fold is now performed, while it previously was not: https://alive2.llvm.org/ce/z/a5Qmr6 llvm/test/Transforms/InstSimplify/ConstProp/gep.ll has not been updated, because there is a tradeoff between folding and inrange preservation there that we may want to discuss. Updates have been performed using: https://gist.github.com/nikic/98357b71fd67756b0f064c9517b62a34
29 lines
901 B
LLVM
Executable File
29 lines
901 B
LLVM
Executable File
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
|
; RUN: opt < %s -instsimplify -S -o /dev/null -debug-pass=Details -enable-new-pm=0 2>&1 | FileCheck --check-prefix DETAILS %s
|
|
; RUN: opt < %s -instsimplify -S -o - | FileCheck %s
|
|
|
|
; Verify that InstSimplifyLegacyPass notifies the pass manager about changes
|
|
; being made (when a call is removed CGSCC must be updated).
|
|
;
|
|
; DETAILS: Made Modification 'Remove redundant instructions' on Function 'main'
|
|
|
|
define internal void @func_1(ptr nocapture readnone %0) #0 {
|
|
; CHECK-LABEL: @func_1(
|
|
; CHECK-NEXT: ret void
|
|
;
|
|
ret void
|
|
}
|
|
|
|
define i16 @main(i16 %0, ptr nocapture readnone %1) #1 {
|
|
; CHECK-LABEL: @main(
|
|
; CHECK-NEXT: bb1:
|
|
; CHECK-NEXT: unreachable
|
|
;
|
|
bb1:
|
|
call void @func_1(ptr undef)
|
|
unreachable
|
|
}
|
|
|
|
attributes #0 = { noinline norecurse nounwind readnone willreturn }
|
|
attributes #1 = { norecurse nounwind readnone }
|