[InstCombine] Signed saturation patterns
[llvm-complete.git] / test / CodeGen / X86 / GlobalISel / legalize-add-v128.mir
blob28ed57dcdf8c9d52134b8cba868e9b64c8bed6c8
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=x86_64-linux-gnu -mattr=+sse2 -run-pass=legalizer %s -o - | FileCheck %s --check-prefix=ALL --check-prefix=SSE2
4 --- |
5   define void @test_add_v16i8() {
6     %ret = add <16 x i8> undef, undef
7     ret void
8   }
10   define void @test_add_v8i16() {
11     %ret = add <8 x i16> undef, undef
12     ret void
13   }
15   define void @test_add_v4i32() {
16     %ret = add <4 x i32> undef, undef
17     ret void
18   }
20   define void @test_add_v2i64() {
21     %ret = add <2 x i64> undef, undef
22     ret void
23   }
24 ...
25 ---
26 name:            test_add_v16i8
27 alignment:       16
28 legalized:       false
29 regBankSelected: false
30 registers:
31   - { id: 0, class: _ }
32   - { id: 1, class: _ }
33   - { id: 2, class: _ }
34 body:             |
35   bb.1 (%ir-block.0):
36     liveins: $xmm0, $xmm1
38     ; ALL-LABEL: name: test_add_v16i8
39     ; ALL: [[DEF:%[0-9]+]]:_(<16 x s8>) = IMPLICIT_DEF
40     ; ALL: [[DEF1:%[0-9]+]]:_(<16 x s8>) = IMPLICIT_DEF
41     ; ALL: [[ADD:%[0-9]+]]:_(<16 x s8>) = G_ADD [[DEF]], [[DEF1]]
42     ; ALL: $xmm0 = COPY [[ADD]](<16 x s8>)
43     ; ALL: RET 0
44     %0(<16 x s8>) = IMPLICIT_DEF
45     %1(<16 x s8>) = IMPLICIT_DEF
46     %2(<16 x s8>) = G_ADD %0, %1
47     $xmm0 = COPY %2
48     RET 0
50 ...
51 ---
52 name:            test_add_v8i16
53 alignment:       16
54 legalized:       false
55 regBankSelected: false
56 registers:
57   - { id: 0, class: _ }
58   - { id: 1, class: _ }
59   - { id: 2, class: _ }
60 body:             |
61   bb.1 (%ir-block.0):
62     liveins: $xmm0, $xmm1
64     ; ALL-LABEL: name: test_add_v8i16
65     ; ALL: [[DEF:%[0-9]+]]:_(<8 x s16>) = IMPLICIT_DEF
66     ; ALL: [[DEF1:%[0-9]+]]:_(<8 x s16>) = IMPLICIT_DEF
67     ; ALL: [[ADD:%[0-9]+]]:_(<8 x s16>) = G_ADD [[DEF]], [[DEF1]]
68     ; ALL: $xmm0 = COPY [[ADD]](<8 x s16>)
69     ; ALL: RET 0
70     %0(<8 x s16>) = IMPLICIT_DEF
71     %1(<8 x s16>) = IMPLICIT_DEF
72     %2(<8 x s16>) = G_ADD %0, %1
73     $xmm0 = COPY %2
74     RET 0
76 ...
77 ---
78 name:            test_add_v4i32
79 alignment:       16
80 legalized:       false
81 regBankSelected: false
82 registers:
83   - { id: 0, class: _ }
84   - { id: 1, class: _ }
85   - { id: 2, class: _ }
86 body:             |
87   bb.1 (%ir-block.0):
88     liveins: $xmm0, $xmm1
90     ; ALL-LABEL: name: test_add_v4i32
91     ; ALL: [[DEF:%[0-9]+]]:_(<4 x s32>) = IMPLICIT_DEF
92     ; ALL: [[DEF1:%[0-9]+]]:_(<4 x s32>) = IMPLICIT_DEF
93     ; ALL: [[ADD:%[0-9]+]]:_(<4 x s32>) = G_ADD [[DEF]], [[DEF1]]
94     ; ALL: $xmm0 = COPY [[ADD]](<4 x s32>)
95     ; ALL: RET 0
96     %0(<4 x s32>) = IMPLICIT_DEF
97     %1(<4 x s32>) = IMPLICIT_DEF
98     %2(<4 x s32>) = G_ADD %0, %1
99     $xmm0 = COPY %2
100     RET 0
104 name:            test_add_v2i64
105 alignment:       16
106 legalized:       false
107 regBankSelected: false
108 registers:
109   - { id: 0, class: _ }
110   - { id: 1, class: _ }
111   - { id: 2, class: _ }
112 body:             |
113   bb.1 (%ir-block.0):
114     liveins: $xmm0, $xmm1
116     ; ALL-LABEL: name: test_add_v2i64
117     ; ALL: [[DEF:%[0-9]+]]:_(<2 x s64>) = IMPLICIT_DEF
118     ; ALL: [[DEF1:%[0-9]+]]:_(<2 x s64>) = IMPLICIT_DEF
119     ; ALL: [[ADD:%[0-9]+]]:_(<2 x s64>) = G_ADD [[DEF]], [[DEF1]]
120     ; ALL: $xmm0 = COPY [[ADD]](<2 x s64>)
121     ; ALL: RET 0
122     %0(<2 x s64>) = IMPLICIT_DEF
123     %1(<2 x s64>) = IMPLICIT_DEF
124     %2(<2 x s64>) = G_ADD %0, %1
125     $xmm0 = COPY %2
126     RET 0