[RISCV] Add shrinkwrap test cases showing gaps in current impl
[llvm-project.git] / llvm / test / CodeGen / X86 / pr69080.ll
blob1b27adcb1ae7ce810a9ae335085f2dd9ef2e81dc
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 3
2 ; RUN: llc < %s -mtriple=x86_64-- | FileCheck %s --check-prefixes=SSE
3 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx2 | FileCheck %s --check-prefixes=AVX
4 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512f | FileCheck %s --check-prefixes=AVX
6 define { <4 x i1>, <4 x i1> } @uaddo(<4 x i1> %a) {
7 ; SSE-LABEL: uaddo:
8 ; SSE:       # %bb.0:
9 ; SSE-NEXT:    movaps %xmm0, %xmm1
10 ; SSE-NEXT:    xorps %xmm0, %xmm0
11 ; SSE-NEXT:    retq
13 ; AVX-LABEL: uaddo:
14 ; AVX:       # %bb.0:
15 ; AVX-NEXT:    vmovaps %xmm0, %xmm1
16 ; AVX-NEXT:    vxorps %xmm0, %xmm0, %xmm0
17 ; AVX-NEXT:    retq
18   %f = call { <4 x i1>, <4 x i1> } @llvm.uadd.with.overflow.v4i1(<4 x i1> %a, <4 x i1> %a)
19   ret { <4 x i1>, <4 x i1> } %f
21 declare { <4 x i1>, <4 x i1> } @llvm.uadd.with.overflow.v4i1(<4 x i1>, <4 x i1>)
23 define { <4 x i1>, <4 x i1> } @saddo(<4 x i1> %a) {
24 ; SSE-LABEL: saddo:
25 ; SSE:       # %bb.0:
26 ; SSE-NEXT:    movaps %xmm0, %xmm1
27 ; SSE-NEXT:    xorps %xmm0, %xmm0
28 ; SSE-NEXT:    retq
30 ; AVX-LABEL: saddo:
31 ; AVX:       # %bb.0:
32 ; AVX-NEXT:    vmovaps %xmm0, %xmm1
33 ; AVX-NEXT:    vxorps %xmm0, %xmm0, %xmm0
34 ; AVX-NEXT:    retq
35   %f = call { <4 x i1>, <4 x i1> } @llvm.sadd.with.overflow.v4i1(<4 x i1> %a, <4 x i1> %a)
36   ret { <4 x i1>, <4 x i1> } %f
38 declare { <4 x i1>, <4 x i1> } @llvm.sadd.with.overflow.v4i1(<4 x i1>, <4 x i1>)