---
title: vBasicOps
framework: accelerate
role: collectionGroup
role_heading: API Collection
path: accelerate/vbasicops
---

# vBasicOps

Perform basic arithmetic and logical functions on 128-bit vectors.

## Overview

Overview vBasicOps.h declares a set of basic arithmetic and logical functions on 128-bit vectors, using the integer types from vecLibTypes.h. The function names begin with “v,” followed by a mnemonic for the type of operation, e.g. “S” or “U” for signed or unsigned, then the width of the operation, then the name of the operation. For example, vS8Divide performs division of signed 8-bit values packed into 128-bit vectors.

## Topics

### Shift and Rotate Functions (from vBasicOps.h)

- [vLL128Shift(_:_:)](accelerate/vll128shift(_:_:).md)
- [vLR128Shift(_:_:)](accelerate/vlr128shift(_:_:).md)
- [vLL64Shift(_:_:)](accelerate/vll64shift(_:_:).md)
- [vLL64Shift2(_:_:)](accelerate/vll64shift2(_:_:).md)
- [vLR64Shift(_:_:)](accelerate/vlr64shift(_:_:).md)
- [vLR64Shift2(_:_:)](accelerate/vlr64shift2(_:_:).md)
- [vA64Shift(_:_:)](accelerate/va64shift(_:_:).md)
- [vA64Shift2(_:_:)](accelerate/va64shift2(_:_:).md)
- [vA128Shift(_:_:)](accelerate/va128shift(_:_:).md)
- [vL64Rotate(_:_:)](accelerate/vl64rotate(_:_:).md)
- [vR64Rotate(_:_:)](accelerate/vr64rotate(_:_:).md)
- [vL64Rotate2(_:_:)](accelerate/vl64rotate2(_:_:).md)
- [vR64Rotate2(_:_:)](accelerate/vr64rotate2(_:_:).md)
- [vL128Rotate(_:_:)](accelerate/vl128rotate(_:_:).md)
- [vR128Rotate(_:_:)](accelerate/vr128rotate(_:_:).md)

### Integer Arithmetic Functions (from vBasicOps.h)

- [vU64AddS(_:_:)](accelerate/vu64adds(_:_:).md)
- [vS64AddS(_:_:)](accelerate/vs64adds(_:_:).md)
- [vU128Add(_:_:)](accelerate/vu128add(_:_:).md)
- [vU128AddS(_:_:)](accelerate/vu128adds(_:_:).md)
- [vS128Add(_:_:)](accelerate/vs128add(_:_:).md)
- [vS128AddS(_:_:)](accelerate/vs128adds(_:_:).md)
- [vU64SubS(_:_:)](accelerate/vu64subs(_:_:).md)
- [vS64SubS(_:_:)](accelerate/vs64subs(_:_:).md)
- [vU128Sub(_:_:)](accelerate/vu128sub(_:_:).md)
- [vU128SubS(_:_:)](accelerate/vu128subs(_:_:).md)
- [vS128Sub(_:_:)](accelerate/vs128sub(_:_:).md)
- [vS128SubS(_:_:)](accelerate/vs128subs(_:_:).md)
- [vU8HalfMultiply(_:_:)](accelerate/vu8halfmultiply(_:_:).md)
- [vS8HalfMultiply(_:_:)](accelerate/vs8halfmultiply(_:_:).md)
- [vU32HalfMultiply(_:_:)](accelerate/vu32halfmultiply(_:_:).md)
- [vS32HalfMultiply(_:_:)](accelerate/vs32halfmultiply(_:_:).md)
- [vU64HalfMultiply(_:_:)](accelerate/vu64halfmultiply(_:_:).md)
- [vS64HalfMultiply(_:_:)](accelerate/vs64halfmultiply(_:_:).md)
- [vU128HalfMultiply(_:_:)](accelerate/vu128halfmultiply(_:_:).md)
- [vS128HalfMultiply(_:_:)](accelerate/vs128halfmultiply(_:_:).md)
- [vU32FullMulEven(_:_:)](accelerate/vu32fullmuleven(_:_:).md)
- [vU32FullMulOdd(_:_:)](accelerate/vu32fullmulodd(_:_:).md)
- [vS32FullMulEven(_:_:)](accelerate/vs32fullmuleven(_:_:).md)
- [vS32FullMulOdd(_:_:)](accelerate/vs32fullmulodd(_:_:).md)
- [vU64FullMulEven(_:_:)](accelerate/vu64fullmuleven(_:_:).md)
- [vU64FullMulOdd(_:_:)](accelerate/vu64fullmulodd(_:_:).md)
- [vS64FullMulEven(_:_:)](accelerate/vs64fullmuleven(_:_:).md)
- [vS64FullMulOdd(_:_:)](accelerate/vs64fullmulodd(_:_:).md)
- [vU8Divide(_:_:_:)](accelerate/vu8divide(_:_:_:).md)
- [vS8Divide(_:_:_:)](accelerate/vs8divide(_:_:_:).md)
- [vU16Divide(_:_:_:)](accelerate/vu16divide(_:_:_:).md)
- [vS16Divide(_:_:_:)](accelerate/vs16divide(_:_:_:).md)
- [vU32Divide(_:_:_:)](accelerate/vu32divide(_:_:_:).md)
- [vS32Divide(_:_:_:)](accelerate/vs32divide(_:_:_:).md)
- [vU64Divide(_:_:_:)](accelerate/vu64divide(_:_:_:).md)
- [vS64Divide(_:_:_:)](accelerate/vs64divide(_:_:_:).md)
- [vU128Divide(_:_:_:)](accelerate/vu128divide(_:_:_:).md)
- [vS128Divide(_:_:_:)](accelerate/vs128divide(_:_:_:).md)
