| ; 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 |
| } |