; NOTE: Assertions have been autogenerated by utils/update_test_checks.py ; RUN: opt -S -passes='require,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 }