39 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 32; RUN: llc < %s -mtriple=x86_64-- | FileCheck %s --check-prefixes=SSE3; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx2 | FileCheck %s --check-prefixes=AVX4; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512f | FileCheck %s --check-prefixes=AVX5 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, %xmm110; SSE-NEXT: xorps %xmm0, %xmm011; SSE-NEXT: retq12;13; AVX-LABEL: uaddo:14; AVX: # %bb.0:15; AVX-NEXT: vmovaps %xmm0, %xmm116; AVX-NEXT: vxorps %xmm0, %xmm0, %xmm017; AVX-NEXT: retq18 %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> } %f20}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, %xmm127; SSE-NEXT: xorps %xmm0, %xmm028; SSE-NEXT: retq29;30; AVX-LABEL: saddo:31; AVX: # %bb.0:32; AVX-NEXT: vmovaps %xmm0, %xmm133; AVX-NEXT: vxorps %xmm0, %xmm0, %xmm034; AVX-NEXT: retq35 %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> } %f37}38declare { <4 x i1>, <4 x i1> } @llvm.sadd.with.overflow.v4i1(<4 x i1>, <4 x i1>)39