xref: /llvm-project/llvm/test/CodeGen/X86/pr69080.ll (revision c43ac32bca1e3d7476aa441fb3460585f0cb0e8f)
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
5
6define { <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
12;
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
20}
21declare { <4 x i1>, <4 x i1> } @llvm.uadd.with.overflow.v4i1(<4 x i1>, <4 x i1>)
22
23define { <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
29;
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
37}
38declare { <4 x i1>, <4 x i1> } @llvm.sadd.with.overflow.v4i1(<4 x i1>, <4 x i1>)
39