47 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: opt -passes=slp-vectorizer < %s -S -o - -mtriple=x86_64-apple-macosx10.10.0 -mcpu=core2 | FileCheck %s3 4define <4 x i32> @sign_extend_v_v(<4 x i16> %lhs) {5; CHECK-LABEL: @sign_extend_v_v(6; CHECK-NEXT: entry:7; CHECK-NEXT: [[TMP0:%.*]] = sext <4 x i16> [[LHS:%.*]] to <4 x i32>8; CHECK-NEXT: ret <4 x i32> [[TMP0]]9;10entry:11 %vecext = extractelement <4 x i16> %lhs, i32 012 %conv = sext i16 %vecext to i3213 %vecinit = insertelement <4 x i32> undef, i32 %conv, i32 014 %vecext1 = extractelement <4 x i16> %lhs, i32 115 %conv2 = sext i16 %vecext1 to i3216 %vecinit3 = insertelement <4 x i32> %vecinit, i32 %conv2, i32 117 %vecext4 = extractelement <4 x i16> %lhs, i32 218 %conv5 = sext i16 %vecext4 to i3219 %vecinit6 = insertelement <4 x i32> %vecinit3, i32 %conv5, i32 220 %vecext7 = extractelement <4 x i16> %lhs, i32 321 %conv8 = sext i16 %vecext7 to i3222 %vecinit9 = insertelement <4 x i32> %vecinit6, i32 %conv8, i32 323 ret <4 x i32> %vecinit924}25 26define <4 x i16> @truncate_v_v(<4 x i32> %lhs) {27; CHECK-LABEL: @truncate_v_v(28; CHECK-NEXT: entry:29; CHECK-NEXT: [[TMP0:%.*]] = trunc <4 x i32> [[LHS:%.*]] to <4 x i16>30; CHECK-NEXT: ret <4 x i16> [[TMP0]]31;32entry:33 %vecext = extractelement <4 x i32> %lhs, i32 034 %conv = trunc i32 %vecext to i1635 %vecinit = insertelement <4 x i16> undef, i16 %conv, i32 036 %vecext1 = extractelement <4 x i32> %lhs, i32 137 %conv2 = trunc i32 %vecext1 to i1638 %vecinit3 = insertelement <4 x i16> %vecinit, i16 %conv2, i32 139 %vecext4 = extractelement <4 x i32> %lhs, i32 240 %conv5 = trunc i32 %vecext4 to i1641 %vecinit6 = insertelement <4 x i16> %vecinit3, i16 %conv5, i32 242 %vecext7 = extractelement <4 x i32> %lhs, i32 343 %conv8 = trunc i32 %vecext7 to i1644 %vecinit9 = insertelement <4 x i16> %vecinit6, i16 %conv8, i32 345 ret <4 x i16> %vecinit946}47