44 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: opt < %s -passes=instcombine -S | FileCheck %s3 4define i8 @vscale_trunc_i32toi8() vscale_range(1, 128) {5; CHECK-LABEL: @vscale_trunc_i32toi8(6; CHECK-NEXT: entry:7; CHECK-NEXT: [[TMP0:%.*]] = call i8 @llvm.vscale.i8()8; CHECK-NEXT: ret i8 [[TMP0]]9;10entry:11 %0 = call i32 @llvm.vscale.i32()12 %1 = trunc i32 %0 to i813 ret i8 %114}15 16 17define i8 @vscale_trunc_i32toi8_poison() vscale_range(1, 256) {18; CHECK-LABEL: @vscale_trunc_i32toi8_poison(19; CHECK-NEXT: entry:20; CHECK-NEXT: [[TMP0:%.*]] = call i32 @llvm.vscale.i32()21; CHECK-NEXT: [[TMP1:%.*]] = trunc i32 [[TMP0]] to i822; CHECK-NEXT: ret i8 [[TMP1]]23;24 entry:25 %0 = call i32 @llvm.vscale.i32()26 %1 = trunc i32 %0 to i827 ret i8 %128}29 30define i8 @vscale_trunc_i32toi8_noAttr() {31; CHECK-LABEL: @vscale_trunc_i32toi8_noAttr(32; CHECK-NEXT: entry:33; CHECK-NEXT: [[TMP0:%.*]] = call i32 @llvm.vscale.i32()34; CHECK-NEXT: [[TMP1:%.*]] = trunc i32 [[TMP0]] to i835; CHECK-NEXT: ret i8 [[TMP1]]36;37 entry:38 %0 = call i32 @llvm.vscale.i32()39 %1 = trunc i32 %0 to i840 ret i8 %141}42 43declare i32 @llvm.vscale.i32()44