brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.6 KiB · 80d196d Raw
110 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: opt < %s -passes=instcombine -S | FileCheck %s3 4;5; Sign-extend6;7 8define i32 @vscale_SExt_i8toi32() vscale_range(1, 64) {9; CHECK-LABEL: @vscale_SExt_i8toi32(10; CHECK-NEXT:  entry:11; CHECK-NEXT:    [[TMP0:%.*]] = call i32 @llvm.vscale.i32()12; CHECK-NEXT:    ret i32 [[TMP0]]13;14entry:15  %0 = call i8 @llvm.vscale.i8()16  %1 = sext i8 %0 to i3217  ret i32 %118}19 20define i32 @vscale_SExt_i8toi32_poison() vscale_range(1, 128) {21; CHECK-LABEL: @vscale_SExt_i8toi32_poison(22; CHECK-NEXT:  entry:23; CHECK-NEXT:    [[TMP0:%.*]] = call i8 @llvm.vscale.i8()24; CHECK-NEXT:    [[TMP1:%.*]] = sext i8 [[TMP0]] to i3225; CHECK-NEXT:    ret i32 [[TMP1]]26;27  entry:28  %0 = call i8 @llvm.vscale.i8()29  %1 = sext i8 %0 to i3230  ret i32 %131}32 33;34; Zero-extend35;36 37define i32 @vscale_ZExt_i8toi32() vscale_range(1, 128) {38; CHECK-LABEL: @vscale_ZExt_i8toi32(39; CHECK-NEXT:  entry:40; CHECK-NEXT:    [[TMP0:%.*]] = call i32 @llvm.vscale.i32()41; CHECK-NEXT:    ret i32 [[TMP0]]42;43entry:44  %0 = call i8 @llvm.vscale.i8()45  %1 = zext i8 %0 to i3246  ret i32 %147}48 49define i32 @vscale_ZExt_i8toi32_poison() vscale_range(1, 256) {50; CHECK-LABEL: @vscale_ZExt_i8toi32_poison(51; CHECK-NEXT:  entry:52; CHECK-NEXT:    [[TMP0:%.*]] = call i8 @llvm.vscale.i8()53; CHECK-NEXT:    [[TMP1:%.*]] = zext i8 [[TMP0]] to i3254; CHECK-NEXT:    ret i32 [[TMP1]]55;56  entry:57  %0 = call i8 @llvm.vscale.i8()58  %1 = zext i8 %0 to i3259  ret i32 %160}61 62;63; No vscale_range attribute64;65 66define i32 @vscale_ZExt_i8toi32_unknown() {67; CHECK-LABEL: @vscale_ZExt_i8toi32_unknown(68; CHECK-NEXT:  entry:69; CHECK-NEXT:    [[TMP0:%.*]] = call i8 @llvm.vscale.i8()70; CHECK-NEXT:    [[TMP1:%.*]] = zext i8 [[TMP0]] to i3271; CHECK-NEXT:    ret i32 [[TMP1]]72;73  entry:74  %0 = call i8 @llvm.vscale.i8()75  %1 = zext i8 %0 to i3276  ret i32 %177}78 79;80; unbounded vscale_range maximum (0)81;82 83define i32 @vscale_SExt_i8toi32_unbounded() vscale_range(1, 0) {84; CHECK-LABEL: @vscale_SExt_i8toi32_unbounded(85; CHECK-NEXT:  entry:86; CHECK-NEXT:    [[TMP0:%.*]] = call i8 @llvm.vscale.i8()87; CHECK-NEXT:    [[TMP1:%.*]] = sext i8 [[TMP0]] to i3288; CHECK-NEXT:    ret i32 [[TMP1]]89;90  entry:91  %0 = call i8 @llvm.vscale.i8()92  %1 = sext i8 %0 to i3293  ret i32 %194}95 96define i32 @vscale_ZExt_i8toi32_unbounded() vscale_range(1, 0) {97; CHECK-LABEL: @vscale_ZExt_i8toi32_unbounded(98; CHECK-NEXT:  entry:99; CHECK-NEXT:    [[TMP0:%.*]] = call i8 @llvm.vscale.i8()100; CHECK-NEXT:    [[TMP1:%.*]] = zext i8 [[TMP0]] to i32101; CHECK-NEXT:    ret i32 [[TMP1]]102;103  entry:104  %0 = call i8 @llvm.vscale.i8()105  %1 = zext i8 %0 to i32106  ret i32 %1107}108 109declare i8  @llvm.vscale.i8()110