; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt -S -passes='require<profile-summary>,function(codegenprepare)' -mtriple=riscv64 %s \
; RUN: | FileCheck --check-prefixes=CHECK %s
define i16 @sink_trunc1(i64 %a) {
; CHECK-LABEL: @sink_trunc1(
; CHECK-NEXT: fnend:
; CHECK-NEXT: [[TMP0:%.*]] = trunc i64 [[A:%.*]] to i16
; CHECK-NEXT: ret i16 [[TMP0]]
;
%trunc = trunc i64 %a to i16
br label %fnend
fnend:
ret i16 %trunc
}
; The flags on the original trunc should be preserved.
define i16 @sink_trunc2(i64 %a) {
; CHECK-LABEL: @sink_trunc2(
; CHECK-NEXT: fnend:
; CHECK-NEXT: [[TMP0:%.*]] = trunc nuw nsw i64 [[A:%.*]] to i16
; CHECK-NEXT: ret i16 [[TMP0]]
;
%trunc = trunc nuw nsw i64 %a to i16
br label %fnend
fnend:
ret i16 %trunc
}