~pali/+junk/llvm-toolchain-3.7

« back to all changes in this revision

Viewing changes to test/CodeGen/X86/trunc-ext-ld-st.ll

  • Committer: Package Import Robot
  • Author(s): Sylvestre Ledru
  • Date: 2015-07-15 17:51:08 UTC
  • Revision ID: package-import@ubuntu.com-20150715175108-l8mynwovkx4zx697
Tags: upstream-3.7~+rc2
ImportĀ upstreamĀ versionĀ 3.7~+rc2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
; RUN: llc < %s -march=x86-64 -mattr=+sse4.1 | FileCheck %s
 
2
 
 
3
;CHECK-LABEL: load_2_i8:
 
4
; A single 16-bit load
 
5
;CHECK: pmovzxbq
 
6
;CHECK: paddq
 
7
;CHECK: pshufb
 
8
; A single 16-bit store
 
9
;CHECK: movw
 
10
;CHECK: ret
 
11
 
 
12
define void @load_2_i8(<2 x i8>* %A)  {
 
13
   %T = load <2 x i8>, <2 x i8>* %A
 
14
   %G = add <2 x i8> %T, <i8 9, i8 7>
 
15
   store <2 x i8> %G, <2 x i8>* %A
 
16
   ret void
 
17
 
18
 
 
19
;CHECK-LABEL: load_2_i16:
 
20
; Read 32-bits
 
21
;CHECK: pmovzxwq
 
22
;CHECK: paddq
 
23
;CHECK: pshufd
 
24
;CHECK: movd
 
25
;CHECK: ret
 
26
define void @load_2_i16(<2 x i16>* %A)  {
 
27
   %T = load <2 x i16>, <2 x i16>* %A
 
28
   %G = add <2 x i16> %T, <i16 9, i16 7>
 
29
   store <2 x i16> %G, <2 x i16>* %A
 
30
   ret void
 
31
 
32
 
 
33
;CHECK-LABEL: load_2_i32:
 
34
;CHECK: pmovzxdq
 
35
;CHECK: paddd
 
36
;CHECK: pshufd
 
37
;CHECK: ret
 
38
define void @load_2_i32(<2 x i32>* %A)  {
 
39
   %T = load <2 x i32>, <2 x i32>* %A
 
40
   %G = add <2 x i32> %T, <i32 9, i32 7>
 
41
   store <2 x i32> %G, <2 x i32>* %A
 
42
   ret void
 
43
 
44
 
 
45
;CHECK-LABEL: load_4_i8:
 
46
;CHECK: pmovzxbd
 
47
;CHECK: paddd
 
48
;CHECK: pshufb
 
49
;CHECK: ret
 
50
define void @load_4_i8(<4 x i8>* %A)  {
 
51
   %T = load <4 x i8>, <4 x i8>* %A
 
52
   %G = add <4 x i8> %T, <i8 1, i8 4, i8 9, i8 7>
 
53
   store <4 x i8> %G, <4 x i8>* %A
 
54
   ret void
 
55
 
56
 
 
57
;CHECK-LABEL: load_4_i16:
 
58
;CHECK: pmovzxwd
 
59
;CHECK: paddw
 
60
;CHECK: pshufb
 
61
;CHECK: ret
 
62
define void @load_4_i16(<4 x i16>* %A)  {
 
63
   %T = load <4 x i16>, <4 x i16>* %A
 
64
   %G = add <4 x i16> %T, <i16 1, i16 4, i16 9, i16 7>
 
65
   store <4 x i16> %G, <4 x i16>* %A
 
66
   ret void
 
67
 
68
 
 
69
;CHECK-LABEL: load_8_i8:
 
70
;CHECK: pmovzxbw
 
71
;CHECK: paddb
 
72
;CHECK: pshufb
 
73
;CHECK: ret
 
74
define void @load_8_i8(<8 x i8>* %A)  {
 
75
   %T = load <8 x i8>, <8 x i8>* %A
 
76
   %G = add <8 x i8> %T, %T
 
77
   store <8 x i8> %G, <8 x i8>* %A
 
78
   ret void
 
79