• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2; RUN: opt -O2                   -S -data-layout="e" < %s | FileCheck %s
3; RUN: opt -passes='default<O2>' -S -data-layout="e" < %s | FileCheck %s
4
5define <4 x i16> @truncate(<4 x i32> %x) {
6; CHECK-LABEL: @truncate(
7; CHECK-NEXT:    [[V3:%.*]] = trunc <4 x i32> [[X:%.*]] to <4 x i16>
8; CHECK-NEXT:    ret <4 x i16> [[V3]]
9;
10  %x0 = extractelement <4 x i32> %x, i32 0
11  %t0 = trunc i32 %x0 to i16
12  %v0 = insertelement <4 x i16> undef, i16 %t0, i32 0
13  %x1 = extractelement <4 x i32> %x, i32 1
14  %t1 = trunc i32 %x1 to i16
15  %v1 = insertelement <4 x i16> %v0, i16 %t1, i32 1
16  %x2 = extractelement <4 x i32> %x, i32 2
17  %t2 = trunc i32 %x2 to i16
18  %v2 = insertelement <4 x i16> %v1, i16 %t2, i32 2
19  %x3 = extractelement <4 x i32> %x, i32 3
20  %t3 = trunc i32 %x3 to i16
21  %v3 = insertelement <4 x i16> %v2, i16 %t3, i32 3
22  ret <4 x i16> %v3
23}
24