brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.7 KiB · 85d6de4 Raw
42 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: opt < %s -passes=instcombine -S | FileCheck %s3 4define <4 x i16> @trunc_add_nsw(<4 x i32> %0) {5; CHECK-LABEL: @trunc_add_nsw(6; CHECK-NEXT:    [[TMP2:%.*]] = ashr <4 x i32> [[TMP0:%.*]], splat (i32 17)7; CHECK-NEXT:    [[TMP3:%.*]] = trunc nsw <4 x i32> [[TMP2]] to <4 x i16>8; CHECK-NEXT:    [[TMP4:%.*]] = add nsw <4 x i16> [[TMP3]], splat (i16 1)9; CHECK-NEXT:    ret <4 x i16> [[TMP4]]10;11  %2 = ashr <4 x i32> %0, <i32 17, i32 17, i32 17, i32 17>12  %3 = trunc <4 x i32> %2 to <4 x i16>13  %4 = add <4 x i16> %3, <i16 1, i16 1, i16 1, i16 1>14  ret <4 x i16> %415}16 17define <4 x i16> @trunc_add_no_nsw(<4 x i32> %0) {18; CHECK-LABEL: @trunc_add_no_nsw(19; CHECK-NEXT:    [[TMP2:%.*]] = lshr <4 x i32> [[TMP0:%.*]], splat (i32 16)20; CHECK-NEXT:    [[TMP3:%.*]] = trunc nuw <4 x i32> [[TMP2]] to <4 x i16>21; CHECK-NEXT:    [[TMP4:%.*]] = add <4 x i16> [[TMP3]], splat (i16 1)22; CHECK-NEXT:    ret <4 x i16> [[TMP4]]23;24  %2 = ashr <4 x i32> %0, <i32 16, i32 16, i32 16, i32 16>25  %3 = trunc <4 x i32> %2 to <4 x i16>26  %4 = add <4 x i16> %3, <i16 1, i16 1, i16 1, i16 1>27  ret <4 x i16> %428}29 30define <4 x i16> @trunc_add_mixed(<4 x i32> %0) {31; CHECK-LABEL: @trunc_add_mixed(32; CHECK-NEXT:    [[TMP2:%.*]] = ashr <4 x i32> [[TMP0:%.*]], <i32 17, i32 16, i32 17, i32 16>33; CHECK-NEXT:    [[TMP3:%.*]] = trunc <4 x i32> [[TMP2]] to <4 x i16>34; CHECK-NEXT:    [[TMP4:%.*]] = add <4 x i16> [[TMP3]], splat (i16 1)35; CHECK-NEXT:    ret <4 x i16> [[TMP4]]36;37  %2 = ashr <4 x i32> %0, <i32 17, i32 16, i32 17, i32 16>38  %3 = trunc <4 x i32> %2 to <4 x i16>39  %4 = add <4 x i16> %3, <i16 1, i16 1, i16 1, i16 1>40  ret <4 x i16> %441}42