packages feed

llvm-extra-0.6: src/LLVM/Extra/Extension/X86Auto.hs

{- Do not edit! This file was created with the PrepareIntrinsics tool. -}
module LLVM.Extra.Extension.X86Auto where

import qualified LLVM.Extra.Extension as Ext
import qualified LLVM.Extra.ExtensionCheck.X86 as ExtX86
import qualified LLVM.Core as LLVM
import qualified Type.Data.Num.Decimal as TypeNum
import qualified Data.Int as I
import qualified Data.Word as W
import Foreign.Ptr (Ptr, )

type MMX = LLVM.Value (LLVM.Vector TypeNum.D8 W.Word8)
type V16Int16 = LLVM.Value (LLVM.Vector TypeNum.D16 I.Int16)
type V16Int8 = LLVM.Value (LLVM.Vector TypeNum.D16 I.Int8)
type V16Word16 = LLVM.Value (LLVM.Vector TypeNum.D16 W.Word16)
type V16Word8 = LLVM.Value (LLVM.Vector TypeNum.D16 W.Word8)
type V2Double = LLVM.Value (LLVM.Vector TypeNum.D2 Double)
type V2Int64 = LLVM.Value (LLVM.Vector TypeNum.D2 I.Int64)
type V2Word64 = LLVM.Value (LLVM.Vector TypeNum.D2 W.Word64)
type V32Int8 = LLVM.Value (LLVM.Vector TypeNum.D32 I.Int8)
type V32Word8 = LLVM.Value (LLVM.Vector TypeNum.D32 W.Word8)
type V4Double = LLVM.Value (LLVM.Vector TypeNum.D4 Double)
type V4Float = LLVM.Value (LLVM.Vector TypeNum.D4 Float)
type V4Int32 = LLVM.Value (LLVM.Vector TypeNum.D4 I.Int32)
type V4Int64 = LLVM.Value (LLVM.Vector TypeNum.D4 I.Int64)
type V4Word32 = LLVM.Value (LLVM.Vector TypeNum.D4 W.Word32)
type V4Word64 = LLVM.Value (LLVM.Vector TypeNum.D4 W.Word64)
type V8Float = LLVM.Value (LLVM.Vector TypeNum.D8 Float)
type V8Int16 = LLVM.Value (LLVM.Vector TypeNum.D8 I.Int16)
type V8Int32 = LLVM.Value (LLVM.Vector TypeNum.D8 I.Int32)
type V8Word16 = LLVM.Value (LLVM.Vector TypeNum.D8 W.Word16)
type V8Word32 = LLVM.Value (LLVM.Vector TypeNum.D8 W.Word32)

pavgusb :: Ext.T (MMX -> MMX -> LLVM.CodeGenFunction r (MMX))
pavgusb = Ext.intrinsic ExtX86.amd3dnow "pavgusb"

pf2id :: Ext.T (MMX -> LLVM.CodeGenFunction r (MMX))
pf2id = Ext.intrinsic ExtX86.amd3dnow "pf2id"

pfacc :: Ext.T (MMX -> MMX -> LLVM.CodeGenFunction r (MMX))
pfacc = Ext.intrinsic ExtX86.amd3dnow "pfacc"

pfadd :: Ext.T (MMX -> MMX -> LLVM.CodeGenFunction r (MMX))
pfadd = Ext.intrinsic ExtX86.amd3dnow "pfadd"

pfcmpeq :: Ext.T (MMX -> MMX -> LLVM.CodeGenFunction r (MMX))
pfcmpeq = Ext.intrinsic ExtX86.amd3dnow "pfcmpeq"

pfcmpge :: Ext.T (MMX -> MMX -> LLVM.CodeGenFunction r (MMX))
pfcmpge = Ext.intrinsic ExtX86.amd3dnow "pfcmpge"

pfcmpgt :: Ext.T (MMX -> MMX -> LLVM.CodeGenFunction r (MMX))
pfcmpgt = Ext.intrinsic ExtX86.amd3dnow "pfcmpgt"

pfmax :: Ext.T (MMX -> MMX -> LLVM.CodeGenFunction r (MMX))
pfmax = Ext.intrinsic ExtX86.amd3dnow "pfmax"

pfmin :: Ext.T (MMX -> MMX -> LLVM.CodeGenFunction r (MMX))
pfmin = Ext.intrinsic ExtX86.amd3dnow "pfmin"

pfmul :: Ext.T (MMX -> MMX -> LLVM.CodeGenFunction r (MMX))
pfmul = Ext.intrinsic ExtX86.amd3dnow "pfmul"

pfrcp :: Ext.T (MMX -> LLVM.CodeGenFunction r (MMX))
pfrcp = Ext.intrinsic ExtX86.amd3dnow "pfrcp"

pfrcpit1 :: Ext.T (MMX -> MMX -> LLVM.CodeGenFunction r (MMX))
pfrcpit1 = Ext.intrinsic ExtX86.amd3dnow "pfrcpit1"

pfrcpit2 :: Ext.T (MMX -> MMX -> LLVM.CodeGenFunction r (MMX))
pfrcpit2 = Ext.intrinsic ExtX86.amd3dnow "pfrcpit2"

pfrsqrt :: Ext.T (MMX -> LLVM.CodeGenFunction r (MMX))
pfrsqrt = Ext.intrinsic ExtX86.amd3dnow "pfrsqrt"

pfrsqit1 :: Ext.T (MMX -> MMX -> LLVM.CodeGenFunction r (MMX))
pfrsqit1 = Ext.intrinsic ExtX86.amd3dnow "pfrsqit1"

pfsub :: Ext.T (MMX -> MMX -> LLVM.CodeGenFunction r (MMX))
pfsub = Ext.intrinsic ExtX86.amd3dnow "pfsub"

pfsubr :: Ext.T (MMX -> MMX -> LLVM.CodeGenFunction r (MMX))
pfsubr = Ext.intrinsic ExtX86.amd3dnow "pfsubr"

pi2fd :: Ext.T (MMX -> LLVM.CodeGenFunction r (MMX))
pi2fd = Ext.intrinsic ExtX86.amd3dnow "pi2fd"

pmulhrw :: Ext.T (MMX -> MMX -> LLVM.CodeGenFunction r (MMX))
pmulhrw = Ext.intrinsic ExtX86.amd3dnow "pmulhrw"

pf2iw :: Ext.T (MMX -> LLVM.CodeGenFunction r (MMX))
pf2iw = Ext.intrinsic ExtX86.amd3dnowa "pf2iw"

pfnacc :: Ext.T (MMX -> MMX -> LLVM.CodeGenFunction r (MMX))
pfnacc = Ext.intrinsic ExtX86.amd3dnowa "pfnacc"

pfpnacc :: Ext.T (MMX -> MMX -> LLVM.CodeGenFunction r (MMX))
pfpnacc = Ext.intrinsic ExtX86.amd3dnowa "pfpnacc"

pi2fw :: Ext.T (MMX -> LLVM.CodeGenFunction r (MMX))
pi2fw = Ext.intrinsic ExtX86.amd3dnowa "pi2fw"

addss :: Ext.T (V4Float -> V4Float -> LLVM.CodeGenFunction r (V4Float))
addss = Ext.intrinsic ExtX86.sse1 "add.ss"

subss :: Ext.T (V4Float -> V4Float -> LLVM.CodeGenFunction r (V4Float))
subss = Ext.intrinsic ExtX86.sse1 "sub.ss"

mulss :: Ext.T (V4Float -> V4Float -> LLVM.CodeGenFunction r (V4Float))
mulss = Ext.intrinsic ExtX86.sse1 "mul.ss"

divss :: Ext.T (V4Float -> V4Float -> LLVM.CodeGenFunction r (V4Float))
divss = Ext.intrinsic ExtX86.sse1 "div.ss"

sqrtss :: Ext.T (V4Float -> LLVM.CodeGenFunction r (V4Float))
sqrtss = Ext.intrinsic ExtX86.sse1 "sqrt.ss"

sqrtps :: Ext.T (V4Float -> LLVM.CodeGenFunction r (V4Float))
sqrtps = Ext.intrinsic ExtX86.sse1 "sqrt.ps"

rcpss :: Ext.T (V4Float -> LLVM.CodeGenFunction r (V4Float))
rcpss = Ext.intrinsic ExtX86.sse1 "rcp.ss"

rcpps :: Ext.T (V4Float -> LLVM.CodeGenFunction r (V4Float))
rcpps = Ext.intrinsic ExtX86.sse1 "rcp.ps"

rsqrtss :: Ext.T (V4Float -> LLVM.CodeGenFunction r (V4Float))
rsqrtss = Ext.intrinsic ExtX86.sse1 "rsqrt.ss"

rsqrtps :: Ext.T (V4Float -> LLVM.CodeGenFunction r (V4Float))
rsqrtps = Ext.intrinsic ExtX86.sse1 "rsqrt.ps"

minss :: Ext.T (V4Float -> V4Float -> LLVM.CodeGenFunction r (V4Float))
minss = Ext.intrinsic ExtX86.sse1 "min.ss"

minps :: Ext.T (V4Float -> V4Float -> LLVM.CodeGenFunction r (V4Float))
minps = Ext.intrinsic ExtX86.sse1 "min.ps"

maxss :: Ext.T (V4Float -> V4Float -> LLVM.CodeGenFunction r (V4Float))
maxss = Ext.intrinsic ExtX86.sse1 "max.ss"

maxps :: Ext.T (V4Float -> V4Float -> LLVM.CodeGenFunction r (V4Float))
maxps = Ext.intrinsic ExtX86.sse1 "max.ps"

cmpss :: Ext.T (V4Float -> V4Float -> LLVM.Value W.Word8 -> LLVM.CodeGenFunction r (V4Float))
cmpss = Ext.intrinsic ExtX86.sse1 "cmp.ss"

cmpps :: Ext.T (V4Float -> V4Float -> LLVM.Value W.Word8 -> LLVM.CodeGenFunction r (V4Float))
cmpps = Ext.intrinsic ExtX86.sse1 "cmp.ps"

comieq :: Ext.T (V4Float -> V4Float -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
comieq = Ext.intrinsic ExtX86.sse1 "comieq.ss"

comilt :: Ext.T (V4Float -> V4Float -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
comilt = Ext.intrinsic ExtX86.sse1 "comilt.ss"

comile :: Ext.T (V4Float -> V4Float -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
comile = Ext.intrinsic ExtX86.sse1 "comile.ss"

comigt :: Ext.T (V4Float -> V4Float -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
comigt = Ext.intrinsic ExtX86.sse1 "comigt.ss"

comige :: Ext.T (V4Float -> V4Float -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
comige = Ext.intrinsic ExtX86.sse1 "comige.ss"

comineq :: Ext.T (V4Float -> V4Float -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
comineq = Ext.intrinsic ExtX86.sse1 "comineq.ss"

ucomieq :: Ext.T (V4Float -> V4Float -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
ucomieq = Ext.intrinsic ExtX86.sse1 "ucomieq.ss"

ucomilt :: Ext.T (V4Float -> V4Float -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
ucomilt = Ext.intrinsic ExtX86.sse1 "ucomilt.ss"

ucomile :: Ext.T (V4Float -> V4Float -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
ucomile = Ext.intrinsic ExtX86.sse1 "ucomile.ss"

ucomigt :: Ext.T (V4Float -> V4Float -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
ucomigt = Ext.intrinsic ExtX86.sse1 "ucomigt.ss"

ucomige :: Ext.T (V4Float -> V4Float -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
ucomige = Ext.intrinsic ExtX86.sse1 "ucomige.ss"

ucomineq :: Ext.T (V4Float -> V4Float -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
ucomineq = Ext.intrinsic ExtX86.sse1 "ucomineq.ss"

cvtss2si :: Ext.T (V4Float -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
cvtss2si = Ext.intrinsic ExtX86.sse1 "cvtss2si"

cvtss2si64 :: Ext.T (V4Float -> LLVM.CodeGenFunction r (LLVM.Value I.Int64))
cvtss2si64 = Ext.intrinsic ExtX86.sse1 "cvtss2si64"

cvttss2si :: Ext.T (V4Float -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
cvttss2si = Ext.intrinsic ExtX86.sse1 "cvttss2si"

cvttss2si64 :: Ext.T (V4Float -> LLVM.CodeGenFunction r (LLVM.Value I.Int64))
cvttss2si64 = Ext.intrinsic ExtX86.sse1 "cvttss2si64"

cvtsi2ss :: Ext.T (V4Float -> LLVM.Value I.Int32 -> LLVM.CodeGenFunction r (V4Float))
cvtsi2ss = Ext.intrinsic ExtX86.sse1 "cvtsi2ss"

cvtsi642ss :: Ext.T (V4Float -> LLVM.Value I.Int64 -> LLVM.CodeGenFunction r (V4Float))
cvtsi642ss = Ext.intrinsic ExtX86.sse1 "cvtsi642ss"

cvtps2pi :: Ext.T (V4Float -> LLVM.CodeGenFunction r (MMX))
cvtps2pi = Ext.intrinsic ExtX86.sse1 "cvtps2pi"

cvttps2pi :: Ext.T (V4Float -> LLVM.CodeGenFunction r (MMX))
cvttps2pi = Ext.intrinsic ExtX86.sse1 "cvttps2pi"

cvtpi2ps :: Ext.T (V4Float -> MMX -> LLVM.CodeGenFunction r (V4Float))
cvtpi2ps = Ext.intrinsic ExtX86.sse1 "cvtpi2ps"

storeups :: Ext.T (LLVM.Value (Ptr ()) -> V4Float -> LLVM.CodeGenFunction r (LLVM.Value ()))
storeups = Ext.intrinsic ExtX86.sse1 "storeu.ps"

sfence :: Ext.T (LLVM.CodeGenFunction r (LLVM.Value ()))
sfence = Ext.intrinsic ExtX86.sse1 "sfence"

movmskps :: Ext.T (V4Float -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
movmskps = Ext.intrinsic ExtX86.sse1 "movmsk.ps"

addsd :: Ext.T (V2Double -> V2Double -> LLVM.CodeGenFunction r (V2Double))
addsd = Ext.intrinsic ExtX86.sse2 "add.sd"

subsd :: Ext.T (V2Double -> V2Double -> LLVM.CodeGenFunction r (V2Double))
subsd = Ext.intrinsic ExtX86.sse2 "sub.sd"

mulsd :: Ext.T (V2Double -> V2Double -> LLVM.CodeGenFunction r (V2Double))
mulsd = Ext.intrinsic ExtX86.sse2 "mul.sd"

divsd :: Ext.T (V2Double -> V2Double -> LLVM.CodeGenFunction r (V2Double))
divsd = Ext.intrinsic ExtX86.sse2 "div.sd"

sqrtsd :: Ext.T (V2Double -> LLVM.CodeGenFunction r (V2Double))
sqrtsd = Ext.intrinsic ExtX86.sse2 "sqrt.sd"

sqrtpd :: Ext.T (V2Double -> LLVM.CodeGenFunction r (V2Double))
sqrtpd = Ext.intrinsic ExtX86.sse2 "sqrt.pd"

minsd :: Ext.T (V2Double -> V2Double -> LLVM.CodeGenFunction r (V2Double))
minsd = Ext.intrinsic ExtX86.sse2 "min.sd"

minpd :: Ext.T (V2Double -> V2Double -> LLVM.CodeGenFunction r (V2Double))
minpd = Ext.intrinsic ExtX86.sse2 "min.pd"

maxsd :: Ext.T (V2Double -> V2Double -> LLVM.CodeGenFunction r (V2Double))
maxsd = Ext.intrinsic ExtX86.sse2 "max.sd"

maxpd :: Ext.T (V2Double -> V2Double -> LLVM.CodeGenFunction r (V2Double))
maxpd = Ext.intrinsic ExtX86.sse2 "max.pd"

cmpsd :: Ext.T (V2Double -> V2Double -> LLVM.Value W.Word8 -> LLVM.CodeGenFunction r (V2Double))
cmpsd = Ext.intrinsic ExtX86.sse2 "cmp.sd"

cmppd :: Ext.T (V2Double -> V2Double -> LLVM.Value W.Word8 -> LLVM.CodeGenFunction r (V2Double))
cmppd = Ext.intrinsic ExtX86.sse2 "cmp.pd"

comisdeq :: Ext.T (V2Double -> V2Double -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
comisdeq = Ext.intrinsic ExtX86.sse2 "comieq.sd"

comisdlt :: Ext.T (V2Double -> V2Double -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
comisdlt = Ext.intrinsic ExtX86.sse2 "comilt.sd"

comisdle :: Ext.T (V2Double -> V2Double -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
comisdle = Ext.intrinsic ExtX86.sse2 "comile.sd"

comisdgt :: Ext.T (V2Double -> V2Double -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
comisdgt = Ext.intrinsic ExtX86.sse2 "comigt.sd"

comisdge :: Ext.T (V2Double -> V2Double -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
comisdge = Ext.intrinsic ExtX86.sse2 "comige.sd"

comisdneq :: Ext.T (V2Double -> V2Double -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
comisdneq = Ext.intrinsic ExtX86.sse2 "comineq.sd"

ucomisdeq :: Ext.T (V2Double -> V2Double -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
ucomisdeq = Ext.intrinsic ExtX86.sse2 "ucomieq.sd"

ucomisdlt :: Ext.T (V2Double -> V2Double -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
ucomisdlt = Ext.intrinsic ExtX86.sse2 "ucomilt.sd"

ucomisdle :: Ext.T (V2Double -> V2Double -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
ucomisdle = Ext.intrinsic ExtX86.sse2 "ucomile.sd"

ucomisdgt :: Ext.T (V2Double -> V2Double -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
ucomisdgt = Ext.intrinsic ExtX86.sse2 "ucomigt.sd"

ucomisdge :: Ext.T (V2Double -> V2Double -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
ucomisdge = Ext.intrinsic ExtX86.sse2 "ucomige.sd"

ucomisdneq :: Ext.T (V2Double -> V2Double -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
ucomisdneq = Ext.intrinsic ExtX86.sse2 "ucomineq.sd"

paddsb128 :: Ext.T (V16Int8 -> V16Int8 -> LLVM.CodeGenFunction r (V16Int8))
paddsb128 = Ext.intrinsic ExtX86.sse2 "padds.b"

paddsw128 :: Ext.T (V8Int16 -> V8Int16 -> LLVM.CodeGenFunction r (V8Int16))
paddsw128 = Ext.intrinsic ExtX86.sse2 "padds.w"

paddusb128 :: Ext.T (V16Word8 -> V16Word8 -> LLVM.CodeGenFunction r (V16Word8))
paddusb128 = Ext.intrinsic ExtX86.sse2 "paddus.b"

paddusw128 :: Ext.T (V8Word16 -> V8Word16 -> LLVM.CodeGenFunction r (V8Word16))
paddusw128 = Ext.intrinsic ExtX86.sse2 "paddus.w"

psubsb128 :: Ext.T (V16Int8 -> V16Int8 -> LLVM.CodeGenFunction r (V16Int8))
psubsb128 = Ext.intrinsic ExtX86.sse2 "psubs.b"

psubsw128 :: Ext.T (V8Int16 -> V8Int16 -> LLVM.CodeGenFunction r (V8Int16))
psubsw128 = Ext.intrinsic ExtX86.sse2 "psubs.w"

psubusb128 :: Ext.T (V16Word8 -> V16Word8 -> LLVM.CodeGenFunction r (V16Word8))
psubusb128 = Ext.intrinsic ExtX86.sse2 "psubus.b"

psubusw128 :: Ext.T (V8Word16 -> V8Word16 -> LLVM.CodeGenFunction r (V8Word16))
psubusw128 = Ext.intrinsic ExtX86.sse2 "psubus.w"

pmulhuw128 :: Ext.T (V8Word16 -> V8Word16 -> LLVM.CodeGenFunction r (V8Word16))
pmulhuw128 = Ext.intrinsic ExtX86.sse2 "pmulhu.w"

pmulhw128 :: Ext.T (V8Int16 -> V8Int16 -> LLVM.CodeGenFunction r (V8Int16))
pmulhw128 = Ext.intrinsic ExtX86.sse2 "pmulh.w"

pmuludq128 :: Ext.T (V4Word32 -> V4Word32 -> LLVM.CodeGenFunction r (V2Word64))
pmuludq128 = Ext.intrinsic ExtX86.sse2 "pmulu.dq"

pmaddwd128 :: Ext.T (V8Int16 -> V8Int16 -> LLVM.CodeGenFunction r (V4Int32))
pmaddwd128 = Ext.intrinsic ExtX86.sse2 "pmadd.wd"

pavgb128 :: Ext.T (V16Int8 -> V16Int8 -> LLVM.CodeGenFunction r (V16Int8))
pavgb128 = Ext.intrinsic ExtX86.sse2 "pavg.b"

pavgw128 :: Ext.T (V8Int16 -> V8Int16 -> LLVM.CodeGenFunction r (V8Int16))
pavgw128 = Ext.intrinsic ExtX86.sse2 "pavg.w"

pmaxub128 :: Ext.T (V16Word8 -> V16Word8 -> LLVM.CodeGenFunction r (V16Word8))
pmaxub128 = Ext.intrinsic ExtX86.sse2 "pmaxu.b"

pmaxsw128 :: Ext.T (V8Int16 -> V8Int16 -> LLVM.CodeGenFunction r (V8Int16))
pmaxsw128 = Ext.intrinsic ExtX86.sse2 "pmaxs.w"

pminub128 :: Ext.T (V16Word8 -> V16Word8 -> LLVM.CodeGenFunction r (V16Word8))
pminub128 = Ext.intrinsic ExtX86.sse2 "pminu.b"

pminsw128 :: Ext.T (V8Int16 -> V8Int16 -> LLVM.CodeGenFunction r (V8Int16))
pminsw128 = Ext.intrinsic ExtX86.sse2 "pmins.w"

psadbw128 :: Ext.T (V16Int8 -> V16Int8 -> LLVM.CodeGenFunction r (V2Int64))
psadbw128 = Ext.intrinsic ExtX86.sse2 "psad.bw"

psllw128 :: Ext.T (V8Int16 -> V8Int16 -> LLVM.CodeGenFunction r (V8Int16))
psllw128 = Ext.intrinsic ExtX86.sse2 "psll.w"

pslld128 :: Ext.T (V4Int32 -> V4Int32 -> LLVM.CodeGenFunction r (V4Int32))
pslld128 = Ext.intrinsic ExtX86.sse2 "psll.d"

psllq128 :: Ext.T (V2Int64 -> V2Int64 -> LLVM.CodeGenFunction r (V2Int64))
psllq128 = Ext.intrinsic ExtX86.sse2 "psll.q"

psrlw128 :: Ext.T (V8Int16 -> V8Int16 -> LLVM.CodeGenFunction r (V8Int16))
psrlw128 = Ext.intrinsic ExtX86.sse2 "psrl.w"

psrld128 :: Ext.T (V4Int32 -> V4Int32 -> LLVM.CodeGenFunction r (V4Int32))
psrld128 = Ext.intrinsic ExtX86.sse2 "psrl.d"

psrlq128 :: Ext.T (V2Int64 -> V2Int64 -> LLVM.CodeGenFunction r (V2Int64))
psrlq128 = Ext.intrinsic ExtX86.sse2 "psrl.q"

psraw128 :: Ext.T (V8Int16 -> V8Int16 -> LLVM.CodeGenFunction r (V8Int16))
psraw128 = Ext.intrinsic ExtX86.sse2 "psra.w"

psrad128 :: Ext.T (V4Int32 -> V4Int32 -> LLVM.CodeGenFunction r (V4Int32))
psrad128 = Ext.intrinsic ExtX86.sse2 "psra.d"

psllwi128 :: Ext.T (V8Int16 -> LLVM.Value I.Int32 -> LLVM.CodeGenFunction r (V8Int16))
psllwi128 = Ext.intrinsic ExtX86.sse2 "pslli.w"

pslldi128 :: Ext.T (V4Int32 -> LLVM.Value I.Int32 -> LLVM.CodeGenFunction r (V4Int32))
pslldi128 = Ext.intrinsic ExtX86.sse2 "pslli.d"

psllqi128 :: Ext.T (V2Int64 -> LLVM.Value I.Int32 -> LLVM.CodeGenFunction r (V2Int64))
psllqi128 = Ext.intrinsic ExtX86.sse2 "pslli.q"

psrlwi128 :: Ext.T (V8Int16 -> LLVM.Value I.Int32 -> LLVM.CodeGenFunction r (V8Int16))
psrlwi128 = Ext.intrinsic ExtX86.sse2 "psrli.w"

psrldi128 :: Ext.T (V4Int32 -> LLVM.Value I.Int32 -> LLVM.CodeGenFunction r (V4Int32))
psrldi128 = Ext.intrinsic ExtX86.sse2 "psrli.d"

psrlqi128 :: Ext.T (V2Int64 -> LLVM.Value I.Int32 -> LLVM.CodeGenFunction r (V2Int64))
psrlqi128 = Ext.intrinsic ExtX86.sse2 "psrli.q"

psrawi128 :: Ext.T (V8Int16 -> LLVM.Value I.Int32 -> LLVM.CodeGenFunction r (V8Int16))
psrawi128 = Ext.intrinsic ExtX86.sse2 "psrai.w"

psradi128 :: Ext.T (V4Int32 -> LLVM.Value I.Int32 -> LLVM.CodeGenFunction r (V4Int32))
psradi128 = Ext.intrinsic ExtX86.sse2 "psrai.d"

pslldqi128 :: Ext.T (V2Int64 -> LLVM.Value I.Int32 -> LLVM.CodeGenFunction r (V2Int64))
pslldqi128 = Ext.intrinsic ExtX86.sse2 "psll.dq"

psrldqi128 :: Ext.T (V2Int64 -> LLVM.Value I.Int32 -> LLVM.CodeGenFunction r (V2Int64))
psrldqi128 = Ext.intrinsic ExtX86.sse2 "psrl.dq"

pslldqi128_byteshift :: Ext.T (V2Int64 -> LLVM.Value I.Int32 -> LLVM.CodeGenFunction r (V2Int64))
pslldqi128_byteshift = Ext.intrinsic ExtX86.sse2 "psll.dq.bs"

psrldqi128_byteshift :: Ext.T (V2Int64 -> LLVM.Value I.Int32 -> LLVM.CodeGenFunction r (V2Int64))
psrldqi128_byteshift = Ext.intrinsic ExtX86.sse2 "psrl.dq.bs"

cvtdq2pd :: Ext.T (V4Int32 -> LLVM.CodeGenFunction r (V2Double))
cvtdq2pd = Ext.intrinsic ExtX86.sse2 "cvtdq2pd"

cvtdq2ps :: Ext.T (V4Int32 -> LLVM.CodeGenFunction r (V4Float))
cvtdq2ps = Ext.intrinsic ExtX86.sse2 "cvtdq2ps"

cvtpd2dq :: Ext.T (V2Double -> LLVM.CodeGenFunction r (V4Int32))
cvtpd2dq = Ext.intrinsic ExtX86.sse2 "cvtpd2dq"

cvttpd2dq :: Ext.T (V2Double -> LLVM.CodeGenFunction r (V4Int32))
cvttpd2dq = Ext.intrinsic ExtX86.sse2 "cvttpd2dq"

cvtpd2ps :: Ext.T (V2Double -> LLVM.CodeGenFunction r (V4Float))
cvtpd2ps = Ext.intrinsic ExtX86.sse2 "cvtpd2ps"

cvtps2dq :: Ext.T (V4Float -> LLVM.CodeGenFunction r (V4Int32))
cvtps2dq = Ext.intrinsic ExtX86.sse2 "cvtps2dq"

cvttps2dq :: Ext.T (V4Float -> LLVM.CodeGenFunction r (V4Int32))
cvttps2dq = Ext.intrinsic ExtX86.sse2 "cvttps2dq"

cvtps2pd :: Ext.T (V4Float -> LLVM.CodeGenFunction r (V2Double))
cvtps2pd = Ext.intrinsic ExtX86.sse2 "cvtps2pd"

cvtsd2si :: Ext.T (V2Double -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
cvtsd2si = Ext.intrinsic ExtX86.sse2 "cvtsd2si"

cvtsd2si64 :: Ext.T (V2Double -> LLVM.CodeGenFunction r (LLVM.Value I.Int64))
cvtsd2si64 = Ext.intrinsic ExtX86.sse2 "cvtsd2si64"

cvttsd2si :: Ext.T (V2Double -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
cvttsd2si = Ext.intrinsic ExtX86.sse2 "cvttsd2si"

cvttsd2si64 :: Ext.T (V2Double -> LLVM.CodeGenFunction r (LLVM.Value I.Int64))
cvttsd2si64 = Ext.intrinsic ExtX86.sse2 "cvttsd2si64"

cvtsi2sd :: Ext.T (V2Double -> LLVM.Value I.Int32 -> LLVM.CodeGenFunction r (V2Double))
cvtsi2sd = Ext.intrinsic ExtX86.sse2 "cvtsi2sd"

cvtsi642sd :: Ext.T (V2Double -> LLVM.Value I.Int64 -> LLVM.CodeGenFunction r (V2Double))
cvtsi642sd = Ext.intrinsic ExtX86.sse2 "cvtsi642sd"

cvtsd2ss :: Ext.T (V4Float -> V2Double -> LLVM.CodeGenFunction r (V4Float))
cvtsd2ss = Ext.intrinsic ExtX86.sse2 "cvtsd2ss"

cvtss2sd :: Ext.T (V2Double -> V4Float -> LLVM.CodeGenFunction r (V2Double))
cvtss2sd = Ext.intrinsic ExtX86.sse2 "cvtss2sd"

cvtpd2pi :: Ext.T (V2Double -> LLVM.CodeGenFunction r (MMX))
cvtpd2pi = Ext.intrinsic ExtX86.sse1 "cvtpd2pi"

cvttpd2pi :: Ext.T (V2Double -> LLVM.CodeGenFunction r (MMX))
cvttpd2pi = Ext.intrinsic ExtX86.sse1 "cvttpd2pi"

cvtpi2pd :: Ext.T (MMX -> LLVM.CodeGenFunction r (V2Double))
cvtpi2pd = Ext.intrinsic ExtX86.sse1 "cvtpi2pd"

storeupd :: Ext.T (LLVM.Value (Ptr ()) -> V2Double -> LLVM.CodeGenFunction r (LLVM.Value ()))
storeupd = Ext.intrinsic ExtX86.sse2 "storeu.pd"

storedqu :: Ext.T (LLVM.Value (Ptr ()) -> V16Int8 -> LLVM.CodeGenFunction r (LLVM.Value ()))
storedqu = Ext.intrinsic ExtX86.sse2 "storeu.dq"

storelv4si :: Ext.T (LLVM.Value (Ptr ()) -> V4Int32 -> LLVM.CodeGenFunction r (LLVM.Value ()))
storelv4si = Ext.intrinsic ExtX86.sse2 "storel.dq"

packsswb128 :: Ext.T (V8Int16 -> V8Int16 -> LLVM.CodeGenFunction r (V16Int8))
packsswb128 = Ext.intrinsic ExtX86.sse2 "packsswb.128"

packssdw128 :: Ext.T (V4Int32 -> V4Int32 -> LLVM.CodeGenFunction r (V8Int16))
packssdw128 = Ext.intrinsic ExtX86.sse2 "packssdw.128"

packuswb128 :: Ext.T (V8Word16 -> V8Word16 -> LLVM.CodeGenFunction r (V16Word8))
packuswb128 = Ext.intrinsic ExtX86.sse2 "packuswb.128"

movmskpd :: Ext.T (V2Double -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
movmskpd = Ext.intrinsic ExtX86.sse2 "movmsk.pd"

pmovmskb128 :: Ext.T (V16Int8 -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
pmovmskb128 = Ext.intrinsic ExtX86.sse2 "pmovmskb.128"

maskmovdqu :: Ext.T (V16Int8 -> V16Int8 -> LLVM.Value (Ptr ()) -> LLVM.CodeGenFunction r (LLVM.Value ()))
maskmovdqu = Ext.intrinsic ExtX86.sse2 "maskmov.dqu"

clflush :: Ext.T (LLVM.Value (Ptr ()) -> LLVM.CodeGenFunction r (LLVM.Value ()))
clflush = Ext.intrinsic ExtX86.sse2 "clflush"

lfence :: Ext.T (LLVM.CodeGenFunction r (LLVM.Value ()))
lfence = Ext.intrinsic ExtX86.sse2 "lfence"

mfence :: Ext.T (LLVM.CodeGenFunction r (LLVM.Value ()))
mfence = Ext.intrinsic ExtX86.sse2 "mfence"

addsubps :: Ext.T (V4Float -> V4Float -> LLVM.CodeGenFunction r (V4Float))
addsubps = Ext.intrinsic ExtX86.sse3 "addsub.ps"

addsubpd :: Ext.T (V2Double -> V2Double -> LLVM.CodeGenFunction r (V2Double))
addsubpd = Ext.intrinsic ExtX86.sse3 "addsub.pd"

haddps :: Ext.T (V4Float -> V4Float -> LLVM.CodeGenFunction r (V4Float))
haddps = Ext.intrinsic ExtX86.sse3 "hadd.ps"

haddpd :: Ext.T (V2Double -> V2Double -> LLVM.CodeGenFunction r (V2Double))
haddpd = Ext.intrinsic ExtX86.sse3 "hadd.pd"

hsubps :: Ext.T (V4Float -> V4Float -> LLVM.CodeGenFunction r (V4Float))
hsubps = Ext.intrinsic ExtX86.sse3 "hsub.ps"

hsubpd :: Ext.T (V2Double -> V2Double -> LLVM.CodeGenFunction r (V2Double))
hsubpd = Ext.intrinsic ExtX86.sse3 "hsub.pd"

lddqu :: Ext.T (LLVM.Value (Ptr ()) -> LLVM.CodeGenFunction r (V16Int8))
lddqu = Ext.intrinsic ExtX86.sse3 "ldu.dq"

monitor :: Ext.T (LLVM.Value (Ptr ()) -> LLVM.Value I.Int32 -> LLVM.Value I.Int32 -> LLVM.CodeGenFunction r (LLVM.Value ()))
monitor = Ext.intrinsic ExtX86.sse3 "monitor"

mwait :: Ext.T (LLVM.Value I.Int32 -> LLVM.Value I.Int32 -> LLVM.CodeGenFunction r (LLVM.Value ()))
mwait = Ext.intrinsic ExtX86.sse3 "mwait"

phaddw :: Ext.T (MMX -> MMX -> LLVM.CodeGenFunction r (MMX))
phaddw = Ext.intrinsic ExtX86.ssse3 "phadd.w"

phaddw128 :: Ext.T (V8Int16 -> V8Int16 -> LLVM.CodeGenFunction r (V8Int16))
phaddw128 = Ext.intrinsic ExtX86.ssse3 "phadd.w.128"

phaddd :: Ext.T (MMX -> MMX -> LLVM.CodeGenFunction r (MMX))
phaddd = Ext.intrinsic ExtX86.ssse3 "phadd.d"

phaddd128 :: Ext.T (V4Int32 -> V4Int32 -> LLVM.CodeGenFunction r (V4Int32))
phaddd128 = Ext.intrinsic ExtX86.ssse3 "phadd.d.128"

phaddsw :: Ext.T (MMX -> MMX -> LLVM.CodeGenFunction r (MMX))
phaddsw = Ext.intrinsic ExtX86.ssse3 "phadd.sw"

phaddsw128 :: Ext.T (V8Int16 -> V8Int16 -> LLVM.CodeGenFunction r (V8Int16))
phaddsw128 = Ext.intrinsic ExtX86.ssse3 "phadd.sw.128"

phsubw :: Ext.T (MMX -> MMX -> LLVM.CodeGenFunction r (MMX))
phsubw = Ext.intrinsic ExtX86.ssse3 "phsub.w"

phsubw128 :: Ext.T (V8Int16 -> V8Int16 -> LLVM.CodeGenFunction r (V8Int16))
phsubw128 = Ext.intrinsic ExtX86.ssse3 "phsub.w.128"

phsubd :: Ext.T (MMX -> MMX -> LLVM.CodeGenFunction r (MMX))
phsubd = Ext.intrinsic ExtX86.ssse3 "phsub.d"

phsubd128 :: Ext.T (V4Int32 -> V4Int32 -> LLVM.CodeGenFunction r (V4Int32))
phsubd128 = Ext.intrinsic ExtX86.ssse3 "phsub.d.128"

phsubsw :: Ext.T (MMX -> MMX -> LLVM.CodeGenFunction r (MMX))
phsubsw = Ext.intrinsic ExtX86.ssse3 "phsub.sw"

phsubsw128 :: Ext.T (V8Int16 -> V8Int16 -> LLVM.CodeGenFunction r (V8Int16))
phsubsw128 = Ext.intrinsic ExtX86.ssse3 "phsub.sw.128"

pmaddubsw :: Ext.T (MMX -> MMX -> LLVM.CodeGenFunction r (MMX))
pmaddubsw = Ext.intrinsic ExtX86.ssse3 "pmadd.ub.sw"

pmaddubsw128 :: Ext.T (V16Word8 -> V16Word8 -> LLVM.CodeGenFunction r (V8Word16))
pmaddubsw128 = Ext.intrinsic ExtX86.ssse3 "pmadd.ub.sw.128"

pmulhrsw :: Ext.T (MMX -> MMX -> LLVM.CodeGenFunction r (MMX))
pmulhrsw = Ext.intrinsic ExtX86.ssse3 "pmul.hr.sw"

pmulhrsw128 :: Ext.T (V8Int16 -> V8Int16 -> LLVM.CodeGenFunction r (V8Int16))
pmulhrsw128 = Ext.intrinsic ExtX86.ssse3 "pmul.hr.sw.128"

pshufb :: Ext.T (MMX -> MMX -> LLVM.CodeGenFunction r (MMX))
pshufb = Ext.intrinsic ExtX86.ssse3 "pshuf.b"

pshufb128 :: Ext.T (V16Int8 -> V16Int8 -> LLVM.CodeGenFunction r (V16Int8))
pshufb128 = Ext.intrinsic ExtX86.ssse3 "pshuf.b.128"

pshufw :: Ext.T (MMX -> LLVM.Value I.Int8 -> LLVM.CodeGenFunction r (MMX))
pshufw = Ext.intrinsic ExtX86.sse1 "pshuf.w"

psignb :: Ext.T (MMX -> MMX -> LLVM.CodeGenFunction r (MMX))
psignb = Ext.intrinsic ExtX86.ssse3 "psign.b"

psignb128 :: Ext.T (V16Int8 -> V16Int8 -> LLVM.CodeGenFunction r (V16Int8))
psignb128 = Ext.intrinsic ExtX86.ssse3 "psign.b.128"

psignw :: Ext.T (MMX -> MMX -> LLVM.CodeGenFunction r (MMX))
psignw = Ext.intrinsic ExtX86.ssse3 "psign.w"

psignw128 :: Ext.T (V8Int16 -> V8Int16 -> LLVM.CodeGenFunction r (V8Int16))
psignw128 = Ext.intrinsic ExtX86.ssse3 "psign.w.128"

psignd :: Ext.T (MMX -> MMX -> LLVM.CodeGenFunction r (MMX))
psignd = Ext.intrinsic ExtX86.ssse3 "psign.d"

psignd128 :: Ext.T (V4Int32 -> V4Int32 -> LLVM.CodeGenFunction r (V4Int32))
psignd128 = Ext.intrinsic ExtX86.ssse3 "psign.d.128"

pabsb :: Ext.T (MMX -> LLVM.CodeGenFunction r (MMX))
pabsb = Ext.intrinsic ExtX86.ssse3 "pabs.b"

pabsb128 :: Ext.T (V16Int8 -> LLVM.CodeGenFunction r (V16Int8))
pabsb128 = Ext.intrinsic ExtX86.ssse3 "pabs.b.128"

pabsw :: Ext.T (MMX -> LLVM.CodeGenFunction r (MMX))
pabsw = Ext.intrinsic ExtX86.ssse3 "pabs.w"

pabsw128 :: Ext.T (V8Int16 -> LLVM.CodeGenFunction r (V8Int16))
pabsw128 = Ext.intrinsic ExtX86.ssse3 "pabs.w.128"

pabsd :: Ext.T (MMX -> LLVM.CodeGenFunction r (MMX))
pabsd = Ext.intrinsic ExtX86.ssse3 "pabs.d"

pabsd128 :: Ext.T (V4Int32 -> LLVM.CodeGenFunction r (V4Int32))
pabsd128 = Ext.intrinsic ExtX86.ssse3 "pabs.d.128"

roundss :: Ext.T (V4Float -> V4Float -> LLVM.Value W.Word32 -> LLVM.CodeGenFunction r (V4Float))
roundss = Ext.intrinsic ExtX86.sse41 "round.ss"

roundps :: Ext.T (V4Float -> LLVM.Value W.Word32 -> LLVM.CodeGenFunction r (V4Float))
roundps = Ext.intrinsic ExtX86.sse41 "round.ps"

roundsd :: Ext.T (V2Double -> V2Double -> LLVM.Value W.Word32 -> LLVM.CodeGenFunction r (V2Double))
roundsd = Ext.intrinsic ExtX86.sse41 "round.sd"

roundpd :: Ext.T (V2Double -> LLVM.Value W.Word32 -> LLVM.CodeGenFunction r (V2Double))
roundpd = Ext.intrinsic ExtX86.sse41 "round.pd"

pmovsxbd128 :: Ext.T (V16Int8 -> LLVM.CodeGenFunction r (V4Int32))
pmovsxbd128 = Ext.intrinsic ExtX86.sse41 "pmovsxbd"

pmovsxbq128 :: Ext.T (V16Int8 -> LLVM.CodeGenFunction r (V2Int64))
pmovsxbq128 = Ext.intrinsic ExtX86.sse41 "pmovsxbq"

pmovsxbw128 :: Ext.T (V16Int8 -> LLVM.CodeGenFunction r (V8Int16))
pmovsxbw128 = Ext.intrinsic ExtX86.sse41 "pmovsxbw"

pmovsxdq128 :: Ext.T (V4Int32 -> LLVM.CodeGenFunction r (V2Int64))
pmovsxdq128 = Ext.intrinsic ExtX86.sse41 "pmovsxdq"

pmovsxwd128 :: Ext.T (V8Int16 -> LLVM.CodeGenFunction r (V4Int32))
pmovsxwd128 = Ext.intrinsic ExtX86.sse41 "pmovsxwd"

pmovsxwq128 :: Ext.T (V8Int16 -> LLVM.CodeGenFunction r (V2Int64))
pmovsxwq128 = Ext.intrinsic ExtX86.sse41 "pmovsxwq"

pmovzxbd128 :: Ext.T (V16Int8 -> LLVM.CodeGenFunction r (V4Int32))
pmovzxbd128 = Ext.intrinsic ExtX86.sse41 "pmovzxbd"

pmovzxbq128 :: Ext.T (V16Int8 -> LLVM.CodeGenFunction r (V2Int64))
pmovzxbq128 = Ext.intrinsic ExtX86.sse41 "pmovzxbq"

pmovzxbw128 :: Ext.T (V16Int8 -> LLVM.CodeGenFunction r (V8Int16))
pmovzxbw128 = Ext.intrinsic ExtX86.sse41 "pmovzxbw"

pmovzxdq128 :: Ext.T (V4Int32 -> LLVM.CodeGenFunction r (V2Int64))
pmovzxdq128 = Ext.intrinsic ExtX86.sse41 "pmovzxdq"

pmovzxwd128 :: Ext.T (V8Int16 -> LLVM.CodeGenFunction r (V4Int32))
pmovzxwd128 = Ext.intrinsic ExtX86.sse41 "pmovzxwd"

pmovzxwq128 :: Ext.T (V8Int16 -> LLVM.CodeGenFunction r (V2Int64))
pmovzxwq128 = Ext.intrinsic ExtX86.sse41 "pmovzxwq"

phminposuw128 :: Ext.T (V8Word16 -> LLVM.CodeGenFunction r (V8Word16))
phminposuw128 = Ext.intrinsic ExtX86.sse41 "phminposuw"

pmaxsb128 :: Ext.T (V16Int8 -> V16Int8 -> LLVM.CodeGenFunction r (V16Int8))
pmaxsb128 = Ext.intrinsic ExtX86.sse41 "pmaxsb"

pmaxsd128 :: Ext.T (V4Int32 -> V4Int32 -> LLVM.CodeGenFunction r (V4Int32))
pmaxsd128 = Ext.intrinsic ExtX86.sse41 "pmaxsd"

pmaxud128 :: Ext.T (V4Word32 -> V4Word32 -> LLVM.CodeGenFunction r (V4Word32))
pmaxud128 = Ext.intrinsic ExtX86.sse41 "pmaxud"

pmaxuw128 :: Ext.T (V8Word16 -> V8Word16 -> LLVM.CodeGenFunction r (V8Word16))
pmaxuw128 = Ext.intrinsic ExtX86.sse41 "pmaxuw"

pminsb128 :: Ext.T (V16Int8 -> V16Int8 -> LLVM.CodeGenFunction r (V16Int8))
pminsb128 = Ext.intrinsic ExtX86.sse41 "pminsb"

pminsd128 :: Ext.T (V4Int32 -> V4Int32 -> LLVM.CodeGenFunction r (V4Int32))
pminsd128 = Ext.intrinsic ExtX86.sse41 "pminsd"

pminud128 :: Ext.T (V4Word32 -> V4Word32 -> LLVM.CodeGenFunction r (V4Word32))
pminud128 = Ext.intrinsic ExtX86.sse41 "pminud"

pminuw128 :: Ext.T (V8Word16 -> V8Word16 -> LLVM.CodeGenFunction r (V8Word16))
pminuw128 = Ext.intrinsic ExtX86.sse41 "pminuw"

aesimc128 :: Ext.T (V2Int64 -> LLVM.CodeGenFunction r (V2Int64))
aesimc128 = Ext.intrinsic ExtX86.aes "aesimc"

aesenc128 :: Ext.T (V2Int64 -> V2Int64 -> LLVM.CodeGenFunction r (V2Int64))
aesenc128 = Ext.intrinsic ExtX86.aes "aesenc"

aesenclast128 :: Ext.T (V2Int64 -> V2Int64 -> LLVM.CodeGenFunction r (V2Int64))
aesenclast128 = Ext.intrinsic ExtX86.aes "aesenclast"

aesdec128 :: Ext.T (V2Int64 -> V2Int64 -> LLVM.CodeGenFunction r (V2Int64))
aesdec128 = Ext.intrinsic ExtX86.aes "aesdec"

aesdeclast128 :: Ext.T (V2Int64 -> V2Int64 -> LLVM.CodeGenFunction r (V2Int64))
aesdeclast128 = Ext.intrinsic ExtX86.aes "aesdeclast"

aeskeygenassist128 :: Ext.T (V2Int64 -> LLVM.Value I.Int8 -> LLVM.CodeGenFunction r (V2Int64))
aeskeygenassist128 = Ext.intrinsic ExtX86.aes "aeskeygenassist"

packusdw128 :: Ext.T (V4Word32 -> V4Word32 -> LLVM.CodeGenFunction r (V8Word16))
packusdw128 = Ext.intrinsic ExtX86.sse41 "packusdw"

pmuldq128 :: Ext.T (V4Int32 -> V4Int32 -> LLVM.CodeGenFunction r (V2Int64))
pmuldq128 = Ext.intrinsic ExtX86.sse41 "pmuldq"

extractps128 :: Ext.T (V4Float -> LLVM.Value I.Int32 -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
extractps128 = Ext.intrinsic ExtX86.sse41 "extractps"

insertps128 :: Ext.T (V4Float -> V4Float -> LLVM.Value I.Int32 -> LLVM.CodeGenFunction r (V4Float))
insertps128 = Ext.intrinsic ExtX86.sse41 "insertps"

pblendvb128 :: Ext.T (V16Int8 -> V16Int8 -> V16Int8 -> LLVM.CodeGenFunction r (V16Int8))
pblendvb128 = Ext.intrinsic ExtX86.sse41 "pblendvb"

pblendw128 :: Ext.T (V8Int16 -> V8Int16 -> LLVM.Value I.Int32 -> LLVM.CodeGenFunction r (V8Int16))
pblendw128 = Ext.intrinsic ExtX86.sse41 "pblendw"

blendpd :: Ext.T (V2Double -> V2Double -> LLVM.Value I.Int32 -> LLVM.CodeGenFunction r (V2Double))
blendpd = Ext.intrinsic ExtX86.sse41 "blendpd"

blendps :: Ext.T (V4Float -> V4Float -> LLVM.Value I.Int32 -> LLVM.CodeGenFunction r (V4Float))
blendps = Ext.intrinsic ExtX86.sse41 "blendps"

blendvpd :: Ext.T (V2Double -> V2Double -> V2Double -> LLVM.CodeGenFunction r (V2Double))
blendvpd = Ext.intrinsic ExtX86.sse41 "blendvpd"

blendvps :: Ext.T (V4Float -> V4Float -> V4Float -> LLVM.CodeGenFunction r (V4Float))
blendvps = Ext.intrinsic ExtX86.sse41 "blendvps"

dppd :: Ext.T (V2Double -> V2Double -> LLVM.Value I.Int32 -> LLVM.CodeGenFunction r (V2Double))
dppd = Ext.intrinsic ExtX86.sse41 "dppd"

dpps :: Ext.T (V4Float -> V4Float -> LLVM.Value I.Int32 -> LLVM.CodeGenFunction r (V4Float))
dpps = Ext.intrinsic ExtX86.sse41 "dpps"

mpsadbw128 :: Ext.T (V16Int8 -> V16Int8 -> LLVM.Value I.Int32 -> LLVM.CodeGenFunction r (V8Int16))
mpsadbw128 = Ext.intrinsic ExtX86.sse41 "mpsadbw"

movntdqa :: Ext.T (LLVM.Value (Ptr ()) -> LLVM.CodeGenFunction r (V2Int64))
movntdqa = Ext.intrinsic ExtX86.sse41 "movntdqa"

ptestz128 :: Ext.T (V2Int64 -> V2Int64 -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
ptestz128 = Ext.intrinsic ExtX86.sse41 "ptestz"

ptestc128 :: Ext.T (V2Int64 -> V2Int64 -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
ptestc128 = Ext.intrinsic ExtX86.sse41 "ptestc"

ptestnzc128 :: Ext.T (V2Int64 -> V2Int64 -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
ptestnzc128 = Ext.intrinsic ExtX86.sse41 "ptestnzc"

crc32qi :: Ext.T (LLVM.Value I.Int32 -> LLVM.Value I.Int8 -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
crc32qi = Ext.intrinsic ExtX86.sse42 "crc32.32.8"

crc32hi :: Ext.T (LLVM.Value I.Int32 -> LLVM.Value I.Int16 -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
crc32hi = Ext.intrinsic ExtX86.sse42 "crc32.32.16"

crc32si :: Ext.T (LLVM.Value I.Int32 -> LLVM.Value I.Int32 -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
crc32si = Ext.intrinsic ExtX86.sse42 "crc32.32.32"

crc32di :: Ext.T (LLVM.Value I.Int64 -> LLVM.Value I.Int64 -> LLVM.CodeGenFunction r (LLVM.Value I.Int64))
crc32di = Ext.intrinsic ExtX86.sse42 "crc32.64.64"

pcmpistrm128 :: Ext.T (V16Int8 -> V16Int8 -> LLVM.Value I.Int8 -> LLVM.CodeGenFunction r (V16Int8))
pcmpistrm128 = Ext.intrinsic ExtX86.sse42 "pcmpistrm128"

pcmpistri128 :: Ext.T (V16Int8 -> V16Int8 -> LLVM.Value I.Int8 -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
pcmpistri128 = Ext.intrinsic ExtX86.sse42 "pcmpistri128"

pcmpistria128 :: Ext.T (V16Int8 -> V16Int8 -> LLVM.Value I.Int8 -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
pcmpistria128 = Ext.intrinsic ExtX86.sse42 "pcmpistria128"

pcmpistric128 :: Ext.T (V16Int8 -> V16Int8 -> LLVM.Value I.Int8 -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
pcmpistric128 = Ext.intrinsic ExtX86.sse42 "pcmpistric128"

pcmpistrio128 :: Ext.T (V16Int8 -> V16Int8 -> LLVM.Value I.Int8 -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
pcmpistrio128 = Ext.intrinsic ExtX86.sse42 "pcmpistrio128"

pcmpistris128 :: Ext.T (V16Int8 -> V16Int8 -> LLVM.Value I.Int8 -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
pcmpistris128 = Ext.intrinsic ExtX86.sse42 "pcmpistris128"

pcmpistriz128 :: Ext.T (V16Int8 -> V16Int8 -> LLVM.Value I.Int8 -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
pcmpistriz128 = Ext.intrinsic ExtX86.sse42 "pcmpistriz128"

pcmpestrm128 :: Ext.T (V16Int8 -> LLVM.Value I.Int32 -> V16Int8 -> LLVM.Value I.Int32 -> LLVM.Value I.Int8 -> LLVM.CodeGenFunction r (V16Int8))
pcmpestrm128 = Ext.intrinsic ExtX86.sse42 "pcmpestrm128"

pcmpestri128 :: Ext.T (V16Int8 -> LLVM.Value I.Int32 -> V16Int8 -> LLVM.Value I.Int32 -> LLVM.Value I.Int8 -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
pcmpestri128 = Ext.intrinsic ExtX86.sse42 "pcmpestri128"

pcmpestria128 :: Ext.T (V16Int8 -> LLVM.Value I.Int32 -> V16Int8 -> LLVM.Value I.Int32 -> LLVM.Value I.Int8 -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
pcmpestria128 = Ext.intrinsic ExtX86.sse42 "pcmpestria128"

pcmpestric128 :: Ext.T (V16Int8 -> LLVM.Value I.Int32 -> V16Int8 -> LLVM.Value I.Int32 -> LLVM.Value I.Int8 -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
pcmpestric128 = Ext.intrinsic ExtX86.sse42 "pcmpestric128"

pcmpestrio128 :: Ext.T (V16Int8 -> LLVM.Value I.Int32 -> V16Int8 -> LLVM.Value I.Int32 -> LLVM.Value I.Int8 -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
pcmpestrio128 = Ext.intrinsic ExtX86.sse42 "pcmpestrio128"

pcmpestris128 :: Ext.T (V16Int8 -> LLVM.Value I.Int32 -> V16Int8 -> LLVM.Value I.Int32 -> LLVM.Value I.Int8 -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
pcmpestris128 = Ext.intrinsic ExtX86.sse42 "pcmpestris128"

pcmpestriz128 :: Ext.T (V16Int8 -> LLVM.Value I.Int32 -> V16Int8 -> LLVM.Value I.Int32 -> LLVM.Value I.Int8 -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
pcmpestriz128 = Ext.intrinsic ExtX86.sse42 "pcmpestriz128"

addsubpd256 :: Ext.T (V4Double -> V4Double -> LLVM.CodeGenFunction r (V4Double))
addsubpd256 = Ext.intrinsic ExtX86.avx "addsub.pd.256"

addsubps256 :: Ext.T (V8Float -> V8Float -> LLVM.CodeGenFunction r (V8Float))
addsubps256 = Ext.intrinsic ExtX86.avx "addsub.ps.256"

maxpd256 :: Ext.T (V4Double -> V4Double -> LLVM.CodeGenFunction r (V4Double))
maxpd256 = Ext.intrinsic ExtX86.avx "max.pd.256"

maxps256 :: Ext.T (V8Float -> V8Float -> LLVM.CodeGenFunction r (V8Float))
maxps256 = Ext.intrinsic ExtX86.avx "max.ps.256"

minpd256 :: Ext.T (V4Double -> V4Double -> LLVM.CodeGenFunction r (V4Double))
minpd256 = Ext.intrinsic ExtX86.avx "min.pd.256"

minps256 :: Ext.T (V8Float -> V8Float -> LLVM.CodeGenFunction r (V8Float))
minps256 = Ext.intrinsic ExtX86.avx "min.ps.256"

sqrtpd256 :: Ext.T (V4Double -> LLVM.CodeGenFunction r (V4Double))
sqrtpd256 = Ext.intrinsic ExtX86.avx "sqrt.pd.256"

sqrtps256 :: Ext.T (V8Float -> LLVM.CodeGenFunction r (V8Float))
sqrtps256 = Ext.intrinsic ExtX86.avx "sqrt.ps.256"

rsqrtps256 :: Ext.T (V8Float -> LLVM.CodeGenFunction r (V8Float))
rsqrtps256 = Ext.intrinsic ExtX86.avx "rsqrt.ps.256"

rcpps256 :: Ext.T (V8Float -> LLVM.CodeGenFunction r (V8Float))
rcpps256 = Ext.intrinsic ExtX86.avx "rcp.ps.256"

roundpd256 :: Ext.T (V4Double -> LLVM.Value W.Word32 -> LLVM.CodeGenFunction r (V4Double))
roundpd256 = Ext.intrinsic ExtX86.avx "round.pd.256"

roundps256 :: Ext.T (V8Float -> LLVM.Value W.Word32 -> LLVM.CodeGenFunction r (V8Float))
roundps256 = Ext.intrinsic ExtX86.avx "round.ps.256"

haddpd256 :: Ext.T (V4Double -> V4Double -> LLVM.CodeGenFunction r (V4Double))
haddpd256 = Ext.intrinsic ExtX86.avx "hadd.pd.256"

hsubps256 :: Ext.T (V8Float -> V8Float -> LLVM.CodeGenFunction r (V8Float))
hsubps256 = Ext.intrinsic ExtX86.avx "hsub.ps.256"

hsubpd256 :: Ext.T (V4Double -> V4Double -> LLVM.CodeGenFunction r (V4Double))
hsubpd256 = Ext.intrinsic ExtX86.avx "hsub.pd.256"

haddps256 :: Ext.T (V8Float -> V8Float -> LLVM.CodeGenFunction r (V8Float))
haddps256 = Ext.intrinsic ExtX86.avx "hadd.ps.256"

vpermilvarpd :: Ext.T (V2Double -> V2Int64 -> LLVM.CodeGenFunction r (V2Double))
vpermilvarpd = Ext.intrinsic ExtX86.avx "vpermilvar.pd"

vpermilvarps :: Ext.T (V4Float -> V4Int32 -> LLVM.CodeGenFunction r (V4Float))
vpermilvarps = Ext.intrinsic ExtX86.avx "vpermilvar.ps"

vpermilvarpd256 :: Ext.T (V4Double -> V4Int64 -> LLVM.CodeGenFunction r (V4Double))
vpermilvarpd256 = Ext.intrinsic ExtX86.avx "vpermilvar.pd.256"

vpermilvarps256 :: Ext.T (V8Float -> V8Int32 -> LLVM.CodeGenFunction r (V8Float))
vpermilvarps256 = Ext.intrinsic ExtX86.avx "vpermilvar.ps.256"

vperm2f128_pd256 :: Ext.T (V4Double -> V4Double -> LLVM.Value I.Int8 -> LLVM.CodeGenFunction r (V4Double))
vperm2f128_pd256 = Ext.intrinsic ExtX86.avx "vperm2f128.pd.256"

vperm2f128_ps256 :: Ext.T (V8Float -> V8Float -> LLVM.Value I.Int8 -> LLVM.CodeGenFunction r (V8Float))
vperm2f128_ps256 = Ext.intrinsic ExtX86.avx "vperm2f128.ps.256"

vperm2f128_si256 :: Ext.T (V8Int32 -> V8Int32 -> LLVM.Value I.Int8 -> LLVM.CodeGenFunction r (V8Int32))
vperm2f128_si256 = Ext.intrinsic ExtX86.avx "vperm2f128.si.256"

blendpd256 :: Ext.T (V4Double -> V4Double -> LLVM.Value I.Int32 -> LLVM.CodeGenFunction r (V4Double))
blendpd256 = Ext.intrinsic ExtX86.avx "blend.pd.256"

blendps256 :: Ext.T (V8Float -> V8Float -> LLVM.Value I.Int32 -> LLVM.CodeGenFunction r (V8Float))
blendps256 = Ext.intrinsic ExtX86.avx "blend.ps.256"

blendvpd256 :: Ext.T (V4Double -> V4Double -> V4Double -> LLVM.CodeGenFunction r (V4Double))
blendvpd256 = Ext.intrinsic ExtX86.avx "blendv.pd.256"

blendvps256 :: Ext.T (V8Float -> V8Float -> V8Float -> LLVM.CodeGenFunction r (V8Float))
blendvps256 = Ext.intrinsic ExtX86.avx "blendv.ps.256"

dpps256 :: Ext.T (V8Float -> V8Float -> LLVM.Value I.Int32 -> LLVM.CodeGenFunction r (V8Float))
dpps256 = Ext.intrinsic ExtX86.avx "dp.ps.256"

cmppd256 :: Ext.T (V4Double -> V4Double -> LLVM.Value W.Word8 -> LLVM.CodeGenFunction r (V4Double))
cmppd256 = Ext.intrinsic ExtX86.avx "cmp.pd.256"

cmpps256 :: Ext.T (V8Float -> V8Float -> LLVM.Value W.Word8 -> LLVM.CodeGenFunction r (V8Float))
cmpps256 = Ext.intrinsic ExtX86.avx "cmp.ps.256"

vextractf128_pd256 :: Ext.T (V4Double -> LLVM.Value I.Int8 -> LLVM.CodeGenFunction r (V2Double))
vextractf128_pd256 = Ext.intrinsic ExtX86.avx "vextractf128.pd.256"

vextractf128_ps256 :: Ext.T (V8Float -> LLVM.Value I.Int8 -> LLVM.CodeGenFunction r (V4Float))
vextractf128_ps256 = Ext.intrinsic ExtX86.avx "vextractf128.ps.256"

vextractf128_si256 :: Ext.T (V8Int32 -> LLVM.Value I.Int8 -> LLVM.CodeGenFunction r (V4Int32))
vextractf128_si256 = Ext.intrinsic ExtX86.avx "vextractf128.si.256"

vinsertf128_pd256 :: Ext.T (V4Double -> V2Double -> LLVM.Value I.Int8 -> LLVM.CodeGenFunction r (V4Double))
vinsertf128_pd256 = Ext.intrinsic ExtX86.avx "vinsertf128.pd.256"

vinsertf128_ps256 :: Ext.T (V8Float -> V4Float -> LLVM.Value I.Int8 -> LLVM.CodeGenFunction r (V8Float))
vinsertf128_ps256 = Ext.intrinsic ExtX86.avx "vinsertf128.ps.256"

vinsertf128_si256 :: Ext.T (V8Int32 -> V4Int32 -> LLVM.Value I.Int8 -> LLVM.CodeGenFunction r (V8Int32))
vinsertf128_si256 = Ext.intrinsic ExtX86.avx "vinsertf128.si.256"

cvtdq2pd256 :: Ext.T (V4Int32 -> LLVM.CodeGenFunction r (V4Double))
cvtdq2pd256 = Ext.intrinsic ExtX86.avx "cvtdq2.pd.256"

cvtdq2ps256 :: Ext.T (V8Int32 -> LLVM.CodeGenFunction r (V8Float))
cvtdq2ps256 = Ext.intrinsic ExtX86.avx "cvtdq2.ps.256"

cvtpd2ps256 :: Ext.T (V4Double -> LLVM.CodeGenFunction r (V4Float))
cvtpd2ps256 = Ext.intrinsic ExtX86.avx "cvt.pd2.ps.256"

cvtps2dq256 :: Ext.T (V8Float -> LLVM.CodeGenFunction r (V8Int32))
cvtps2dq256 = Ext.intrinsic ExtX86.avx "cvt.ps2dq.256"

cvtps2pd256 :: Ext.T (V4Float -> LLVM.CodeGenFunction r (V4Double))
cvtps2pd256 = Ext.intrinsic ExtX86.avx "cvt.ps2.pd.256"

cvttpd2dq256 :: Ext.T (V4Double -> LLVM.CodeGenFunction r (V4Int32))
cvttpd2dq256 = Ext.intrinsic ExtX86.avx "cvtt.pd2dq.256"

cvtpd2dq256 :: Ext.T (V4Double -> LLVM.CodeGenFunction r (V4Int32))
cvtpd2dq256 = Ext.intrinsic ExtX86.avx "cvt.pd2dq.256"

cvttps2dq256 :: Ext.T (V8Float -> LLVM.CodeGenFunction r (V8Int32))
cvttps2dq256 = Ext.intrinsic ExtX86.avx "cvtt.ps2dq.256"

vtestzpd :: Ext.T (V2Double -> V2Double -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
vtestzpd = Ext.intrinsic ExtX86.avx "vtestz.pd"

vtestcpd :: Ext.T (V2Double -> V2Double -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
vtestcpd = Ext.intrinsic ExtX86.avx "vtestc.pd"

vtestnzcpd :: Ext.T (V2Double -> V2Double -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
vtestnzcpd = Ext.intrinsic ExtX86.avx "vtestnzc.pd"

vtestzps :: Ext.T (V4Float -> V4Float -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
vtestzps = Ext.intrinsic ExtX86.avx "vtestz.ps"

vtestcps :: Ext.T (V4Float -> V4Float -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
vtestcps = Ext.intrinsic ExtX86.avx "vtestc.ps"

vtestnzcps :: Ext.T (V4Float -> V4Float -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
vtestnzcps = Ext.intrinsic ExtX86.avx "vtestnzc.ps"

vtestzpd256 :: Ext.T (V4Double -> V4Double -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
vtestzpd256 = Ext.intrinsic ExtX86.avx "vtestz.pd.256"

vtestcpd256 :: Ext.T (V4Double -> V4Double -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
vtestcpd256 = Ext.intrinsic ExtX86.avx "vtestc.pd.256"

vtestnzcpd256 :: Ext.T (V4Double -> V4Double -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
vtestnzcpd256 = Ext.intrinsic ExtX86.avx "vtestnzc.pd.256"

vtestzps256 :: Ext.T (V8Float -> V8Float -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
vtestzps256 = Ext.intrinsic ExtX86.avx "vtestz.ps.256"

vtestcps256 :: Ext.T (V8Float -> V8Float -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
vtestcps256 = Ext.intrinsic ExtX86.avx "vtestc.ps.256"

vtestnzcps256 :: Ext.T (V8Float -> V8Float -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
vtestnzcps256 = Ext.intrinsic ExtX86.avx "vtestnzc.ps.256"

ptestz256 :: Ext.T (V4Int64 -> V4Int64 -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
ptestz256 = Ext.intrinsic ExtX86.avx "ptestz.256"

ptestc256 :: Ext.T (V4Int64 -> V4Int64 -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
ptestc256 = Ext.intrinsic ExtX86.avx "ptestc.256"

ptestnzc256 :: Ext.T (V4Int64 -> V4Int64 -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
ptestnzc256 = Ext.intrinsic ExtX86.avx "ptestnzc.256"

movmskpd256 :: Ext.T (V4Double -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
movmskpd256 = Ext.intrinsic ExtX86.avx "movmsk.pd.256"

movmskps256 :: Ext.T (V8Float -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
movmskps256 = Ext.intrinsic ExtX86.avx "movmsk.ps.256"

vzeroall :: Ext.T (LLVM.CodeGenFunction r (LLVM.Value ()))
vzeroall = Ext.intrinsic ExtX86.avx "vzeroall"

vzeroupper :: Ext.T (LLVM.CodeGenFunction r (LLVM.Value ()))
vzeroupper = Ext.intrinsic ExtX86.avx "vzeroupper"

vbroadcastss :: Ext.T (LLVM.Value (Ptr ()) -> LLVM.CodeGenFunction r (V4Float))
vbroadcastss = Ext.intrinsic ExtX86.avx "vbroadcast.ss"

vbroadcastsd256 :: Ext.T (LLVM.Value (Ptr ()) -> LLVM.CodeGenFunction r (V4Double))
vbroadcastsd256 = Ext.intrinsic ExtX86.avx "vbroadcast.sd.256"

vbroadcastss256 :: Ext.T (LLVM.Value (Ptr ()) -> LLVM.CodeGenFunction r (V8Float))
vbroadcastss256 = Ext.intrinsic ExtX86.avx "vbroadcast.ss.256"

vbroadcastf128_pd256 :: Ext.T (LLVM.Value (Ptr ()) -> LLVM.CodeGenFunction r (V4Double))
vbroadcastf128_pd256 = Ext.intrinsic ExtX86.avx "vbroadcastf128.pd.256"

vbroadcastf128_ps256 :: Ext.T (LLVM.Value (Ptr ()) -> LLVM.CodeGenFunction r (V8Float))
vbroadcastf128_ps256 = Ext.intrinsic ExtX86.avx "vbroadcastf128.ps.256"

lddqu256 :: Ext.T (LLVM.Value (Ptr ()) -> LLVM.CodeGenFunction r (V32Int8))
lddqu256 = Ext.intrinsic ExtX86.avx "ldu.dq.256"

storeupd256 :: Ext.T (LLVM.Value (Ptr ()) -> V4Double -> LLVM.CodeGenFunction r (LLVM.Value ()))
storeupd256 = Ext.intrinsic ExtX86.avx "storeu.pd.256"

storeups256 :: Ext.T (LLVM.Value (Ptr ()) -> V8Float -> LLVM.CodeGenFunction r (LLVM.Value ()))
storeups256 = Ext.intrinsic ExtX86.avx "storeu.ps.256"

storedqu256 :: Ext.T (LLVM.Value (Ptr ()) -> V32Int8 -> LLVM.CodeGenFunction r (LLVM.Value ()))
storedqu256 = Ext.intrinsic ExtX86.avx "storeu.dq.256"

movntdq256 :: Ext.T (LLVM.Value (Ptr ()) -> V4Int64 -> LLVM.CodeGenFunction r (LLVM.Value ()))
movntdq256 = Ext.intrinsic ExtX86.avx "movnt.dq.256"

movntpd256 :: Ext.T (LLVM.Value (Ptr ()) -> V4Double -> LLVM.CodeGenFunction r (LLVM.Value ()))
movntpd256 = Ext.intrinsic ExtX86.avx "movnt.pd.256"

movntps256 :: Ext.T (LLVM.Value (Ptr ()) -> V8Float -> LLVM.CodeGenFunction r (LLVM.Value ()))
movntps256 = Ext.intrinsic ExtX86.avx "movnt.ps.256"

maskloadpd :: Ext.T (LLVM.Value (Ptr ()) -> V2Double -> LLVM.CodeGenFunction r (V2Double))
maskloadpd = Ext.intrinsic ExtX86.avx "maskload.pd"

maskloadps :: Ext.T (LLVM.Value (Ptr ()) -> V4Float -> LLVM.CodeGenFunction r (V4Float))
maskloadps = Ext.intrinsic ExtX86.avx "maskload.ps"

maskloadpd256 :: Ext.T (LLVM.Value (Ptr ()) -> V4Double -> LLVM.CodeGenFunction r (V4Double))
maskloadpd256 = Ext.intrinsic ExtX86.avx "maskload.pd.256"

maskloadps256 :: Ext.T (LLVM.Value (Ptr ()) -> V8Float -> LLVM.CodeGenFunction r (V8Float))
maskloadps256 = Ext.intrinsic ExtX86.avx "maskload.ps.256"

maskstorepd :: Ext.T (LLVM.Value (Ptr ()) -> V2Double -> V2Double -> LLVM.CodeGenFunction r (LLVM.Value ()))
maskstorepd = Ext.intrinsic ExtX86.avx "maskstore.pd"

maskstoreps :: Ext.T (LLVM.Value (Ptr ()) -> V4Float -> V4Float -> LLVM.CodeGenFunction r (LLVM.Value ()))
maskstoreps = Ext.intrinsic ExtX86.avx "maskstore.ps"

maskstorepd256 :: Ext.T (LLVM.Value (Ptr ()) -> V4Double -> V4Double -> LLVM.CodeGenFunction r (LLVM.Value ()))
maskstorepd256 = Ext.intrinsic ExtX86.avx "maskstore.pd.256"

maskstoreps256 :: Ext.T (LLVM.Value (Ptr ()) -> V8Float -> V8Float -> LLVM.CodeGenFunction r (LLVM.Value ()))
maskstoreps256 = Ext.intrinsic ExtX86.avx "maskstore.ps.256"

paddsb256 :: Ext.T (V32Int8 -> V32Int8 -> LLVM.CodeGenFunction r (V32Int8))
paddsb256 = Ext.intrinsic ExtX86.avx2 "padds.b"

paddsw256 :: Ext.T (V16Int16 -> V16Int16 -> LLVM.CodeGenFunction r (V16Int16))
paddsw256 = Ext.intrinsic ExtX86.avx2 "padds.w"

paddusb256 :: Ext.T (V32Word8 -> V32Word8 -> LLVM.CodeGenFunction r (V32Word8))
paddusb256 = Ext.intrinsic ExtX86.avx2 "paddus.b"

paddusw256 :: Ext.T (V16Word16 -> V16Word16 -> LLVM.CodeGenFunction r (V16Word16))
paddusw256 = Ext.intrinsic ExtX86.avx2 "paddus.w"

psubsb256 :: Ext.T (V32Int8 -> V32Int8 -> LLVM.CodeGenFunction r (V32Int8))
psubsb256 = Ext.intrinsic ExtX86.avx2 "psubs.b"

psubsw256 :: Ext.T (V16Int16 -> V16Int16 -> LLVM.CodeGenFunction r (V16Int16))
psubsw256 = Ext.intrinsic ExtX86.avx2 "psubs.w"

psubusb256 :: Ext.T (V32Word8 -> V32Word8 -> LLVM.CodeGenFunction r (V32Word8))
psubusb256 = Ext.intrinsic ExtX86.avx2 "psubus.b"

psubusw256 :: Ext.T (V16Word16 -> V16Word16 -> LLVM.CodeGenFunction r (V16Word16))
psubusw256 = Ext.intrinsic ExtX86.avx2 "psubus.w"

pmulhuw256 :: Ext.T (V16Word16 -> V16Word16 -> LLVM.CodeGenFunction r (V16Word16))
pmulhuw256 = Ext.intrinsic ExtX86.avx2 "pmulhu.w"

pmulhw256 :: Ext.T (V16Int16 -> V16Int16 -> LLVM.CodeGenFunction r (V16Int16))
pmulhw256 = Ext.intrinsic ExtX86.avx2 "pmulh.w"

pmuludq256 :: Ext.T (V8Word32 -> V8Word32 -> LLVM.CodeGenFunction r (V4Word64))
pmuludq256 = Ext.intrinsic ExtX86.avx2 "pmulu.dq"

pmuldq256 :: Ext.T (V8Int32 -> V8Int32 -> LLVM.CodeGenFunction r (V4Int64))
pmuldq256 = Ext.intrinsic ExtX86.avx2 "pmul.dq"

pmaddwd256 :: Ext.T (V16Int16 -> V16Int16 -> LLVM.CodeGenFunction r (V8Int32))
pmaddwd256 = Ext.intrinsic ExtX86.avx2 "pmadd.wd"

pavgb256 :: Ext.T (V32Int8 -> V32Int8 -> LLVM.CodeGenFunction r (V32Int8))
pavgb256 = Ext.intrinsic ExtX86.avx2 "pavg.b"

pavgw256 :: Ext.T (V16Int16 -> V16Int16 -> LLVM.CodeGenFunction r (V16Int16))
pavgw256 = Ext.intrinsic ExtX86.avx2 "pavg.w"

psadbw256 :: Ext.T (V32Int8 -> V32Int8 -> LLVM.CodeGenFunction r (V4Int64))
psadbw256 = Ext.intrinsic ExtX86.avx2 "psad.bw"

pmaxub256 :: Ext.T (V32Word8 -> V32Word8 -> LLVM.CodeGenFunction r (V32Word8))
pmaxub256 = Ext.intrinsic ExtX86.avx2 "pmaxu.b"

pmaxuw256 :: Ext.T (V16Word16 -> V16Word16 -> LLVM.CodeGenFunction r (V16Word16))
pmaxuw256 = Ext.intrinsic ExtX86.avx2 "pmaxu.w"

pmaxud256 :: Ext.T (V8Word32 -> V8Word32 -> LLVM.CodeGenFunction r (V8Word32))
pmaxud256 = Ext.intrinsic ExtX86.avx2 "pmaxu.d"

pmaxsb256 :: Ext.T (V32Int8 -> V32Int8 -> LLVM.CodeGenFunction r (V32Int8))
pmaxsb256 = Ext.intrinsic ExtX86.avx2 "pmaxs.b"

pmaxsw256 :: Ext.T (V16Int16 -> V16Int16 -> LLVM.CodeGenFunction r (V16Int16))
pmaxsw256 = Ext.intrinsic ExtX86.avx2 "pmaxs.w"

pmaxsd256 :: Ext.T (V8Int32 -> V8Int32 -> LLVM.CodeGenFunction r (V8Int32))
pmaxsd256 = Ext.intrinsic ExtX86.avx2 "pmaxs.d"

pminub256 :: Ext.T (V32Word8 -> V32Word8 -> LLVM.CodeGenFunction r (V32Word8))
pminub256 = Ext.intrinsic ExtX86.avx2 "pminu.b"

pminuw256 :: Ext.T (V16Word16 -> V16Word16 -> LLVM.CodeGenFunction r (V16Word16))
pminuw256 = Ext.intrinsic ExtX86.avx2 "pminu.w"

pminud256 :: Ext.T (V8Word32 -> V8Word32 -> LLVM.CodeGenFunction r (V8Word32))
pminud256 = Ext.intrinsic ExtX86.avx2 "pminu.d"

pminsb256 :: Ext.T (V32Int8 -> V32Int8 -> LLVM.CodeGenFunction r (V32Int8))
pminsb256 = Ext.intrinsic ExtX86.avx2 "pmins.b"

pminsw256 :: Ext.T (V16Int16 -> V16Int16 -> LLVM.CodeGenFunction r (V16Int16))
pminsw256 = Ext.intrinsic ExtX86.avx2 "pmins.w"

pminsd256 :: Ext.T (V8Int32 -> V8Int32 -> LLVM.CodeGenFunction r (V8Int32))
pminsd256 = Ext.intrinsic ExtX86.avx2 "pmins.d"

psllw256 :: Ext.T (V16Int16 -> V8Int16 -> LLVM.CodeGenFunction r (V16Int16))
psllw256 = Ext.intrinsic ExtX86.avx2 "psll.w"

pslld256 :: Ext.T (V8Int32 -> V4Int32 -> LLVM.CodeGenFunction r (V8Int32))
pslld256 = Ext.intrinsic ExtX86.avx2 "psll.d"

psllq256 :: Ext.T (V4Int64 -> V2Int64 -> LLVM.CodeGenFunction r (V4Int64))
psllq256 = Ext.intrinsic ExtX86.avx2 "psll.q"

psrlw256 :: Ext.T (V16Int16 -> V8Int16 -> LLVM.CodeGenFunction r (V16Int16))
psrlw256 = Ext.intrinsic ExtX86.avx2 "psrl.w"

psrld256 :: Ext.T (V8Int32 -> V4Int32 -> LLVM.CodeGenFunction r (V8Int32))
psrld256 = Ext.intrinsic ExtX86.avx2 "psrl.d"

psrlq256 :: Ext.T (V4Int64 -> V2Int64 -> LLVM.CodeGenFunction r (V4Int64))
psrlq256 = Ext.intrinsic ExtX86.avx2 "psrl.q"

psraw256 :: Ext.T (V16Int16 -> V8Int16 -> LLVM.CodeGenFunction r (V16Int16))
psraw256 = Ext.intrinsic ExtX86.avx2 "psra.w"

psrad256 :: Ext.T (V8Int32 -> V4Int32 -> LLVM.CodeGenFunction r (V8Int32))
psrad256 = Ext.intrinsic ExtX86.avx2 "psra.d"

psllwi256 :: Ext.T (V16Int16 -> LLVM.Value I.Int32 -> LLVM.CodeGenFunction r (V16Int16))
psllwi256 = Ext.intrinsic ExtX86.avx2 "pslli.w"

pslldi256 :: Ext.T (V8Int32 -> LLVM.Value I.Int32 -> LLVM.CodeGenFunction r (V8Int32))
pslldi256 = Ext.intrinsic ExtX86.avx2 "pslli.d"

psllqi256 :: Ext.T (V4Int64 -> LLVM.Value I.Int32 -> LLVM.CodeGenFunction r (V4Int64))
psllqi256 = Ext.intrinsic ExtX86.avx2 "pslli.q"

psrlwi256 :: Ext.T (V16Int16 -> LLVM.Value I.Int32 -> LLVM.CodeGenFunction r (V16Int16))
psrlwi256 = Ext.intrinsic ExtX86.avx2 "psrli.w"

psrldi256 :: Ext.T (V8Int32 -> LLVM.Value I.Int32 -> LLVM.CodeGenFunction r (V8Int32))
psrldi256 = Ext.intrinsic ExtX86.avx2 "psrli.d"

psrlqi256 :: Ext.T (V4Int64 -> LLVM.Value I.Int32 -> LLVM.CodeGenFunction r (V4Int64))
psrlqi256 = Ext.intrinsic ExtX86.avx2 "psrli.q"

psrawi256 :: Ext.T (V16Int16 -> LLVM.Value I.Int32 -> LLVM.CodeGenFunction r (V16Int16))
psrawi256 = Ext.intrinsic ExtX86.avx2 "psrai.w"

psradi256 :: Ext.T (V8Int32 -> LLVM.Value I.Int32 -> LLVM.CodeGenFunction r (V8Int32))
psradi256 = Ext.intrinsic ExtX86.avx2 "psrai.d"

pslldqi256 :: Ext.T (V4Int64 -> LLVM.Value I.Int32 -> LLVM.CodeGenFunction r (V4Int64))
pslldqi256 = Ext.intrinsic ExtX86.avx2 "psll.dq"

psrldqi256 :: Ext.T (V4Int64 -> LLVM.Value I.Int32 -> LLVM.CodeGenFunction r (V4Int64))
psrldqi256 = Ext.intrinsic ExtX86.avx2 "psrl.dq"

pslldqi256_byteshift :: Ext.T (V4Int64 -> LLVM.Value I.Int32 -> LLVM.CodeGenFunction r (V4Int64))
pslldqi256_byteshift = Ext.intrinsic ExtX86.avx2 "psll.dq.bs"

psrldqi256_byteshift :: Ext.T (V4Int64 -> LLVM.Value I.Int32 -> LLVM.CodeGenFunction r (V4Int64))
psrldqi256_byteshift = Ext.intrinsic ExtX86.avx2 "psrl.dq.bs"

packsswb256 :: Ext.T (V16Int16 -> V16Int16 -> LLVM.CodeGenFunction r (V32Int8))
packsswb256 = Ext.intrinsic ExtX86.avx2 "packsswb"

packssdw256 :: Ext.T (V8Int32 -> V8Int32 -> LLVM.CodeGenFunction r (V16Int16))
packssdw256 = Ext.intrinsic ExtX86.avx2 "packssdw"

packuswb256 :: Ext.T (V16Word16 -> V16Word16 -> LLVM.CodeGenFunction r (V32Word8))
packuswb256 = Ext.intrinsic ExtX86.avx2 "packuswb"

packusdw256 :: Ext.T (V8Word32 -> V8Word32 -> LLVM.CodeGenFunction r (V16Word16))
packusdw256 = Ext.intrinsic ExtX86.avx2 "packusdw"

pabsb256 :: Ext.T (V32Int8 -> LLVM.CodeGenFunction r (V32Int8))
pabsb256 = Ext.intrinsic ExtX86.avx2 "pabs.b"

pabsw256 :: Ext.T (V16Int16 -> LLVM.CodeGenFunction r (V16Int16))
pabsw256 = Ext.intrinsic ExtX86.avx2 "pabs.w"

pabsd256 :: Ext.T (V8Int32 -> LLVM.CodeGenFunction r (V8Int32))
pabsd256 = Ext.intrinsic ExtX86.avx2 "pabs.d"

phaddw256 :: Ext.T (V16Int16 -> V16Int16 -> LLVM.CodeGenFunction r (V16Int16))
phaddw256 = Ext.intrinsic ExtX86.avx2 "phadd.w"

phaddd256 :: Ext.T (V8Int32 -> V8Int32 -> LLVM.CodeGenFunction r (V8Int32))
phaddd256 = Ext.intrinsic ExtX86.avx2 "phadd.d"

phaddsw256 :: Ext.T (V16Int16 -> V16Int16 -> LLVM.CodeGenFunction r (V16Int16))
phaddsw256 = Ext.intrinsic ExtX86.avx2 "phadd.sw"

phsubw256 :: Ext.T (V16Int16 -> V16Int16 -> LLVM.CodeGenFunction r (V16Int16))
phsubw256 = Ext.intrinsic ExtX86.avx2 "phsub.w"

phsubd256 :: Ext.T (V8Int32 -> V8Int32 -> LLVM.CodeGenFunction r (V8Int32))
phsubd256 = Ext.intrinsic ExtX86.avx2 "phsub.d"

phsubsw256 :: Ext.T (V16Int16 -> V16Int16 -> LLVM.CodeGenFunction r (V16Int16))
phsubsw256 = Ext.intrinsic ExtX86.avx2 "phsub.sw"

pmaddubsw256 :: Ext.T (V32Word8 -> V32Word8 -> LLVM.CodeGenFunction r (V16Word16))
pmaddubsw256 = Ext.intrinsic ExtX86.avx2 "pmadd.ub.sw"

psignb256 :: Ext.T (V32Int8 -> V32Int8 -> LLVM.CodeGenFunction r (V32Int8))
psignb256 = Ext.intrinsic ExtX86.avx2 "psign.b"

psignw256 :: Ext.T (V16Int16 -> V16Int16 -> LLVM.CodeGenFunction r (V16Int16))
psignw256 = Ext.intrinsic ExtX86.avx2 "psign.w"

psignd256 :: Ext.T (V8Int32 -> V8Int32 -> LLVM.CodeGenFunction r (V8Int32))
psignd256 = Ext.intrinsic ExtX86.avx2 "psign.d"

pmulhrsw256 :: Ext.T (V16Int16 -> V16Int16 -> LLVM.CodeGenFunction r (V16Int16))
pmulhrsw256 = Ext.intrinsic ExtX86.avx2 "pmul.hr.sw"

pmovsxbd256 :: Ext.T (V16Int8 -> LLVM.CodeGenFunction r (V8Int32))
pmovsxbd256 = Ext.intrinsic ExtX86.avx2 "pmovsxbd"

pmovsxbq256 :: Ext.T (V16Int8 -> LLVM.CodeGenFunction r (V4Int64))
pmovsxbq256 = Ext.intrinsic ExtX86.avx2 "pmovsxbq"

pmovsxbw256 :: Ext.T (V16Int8 -> LLVM.CodeGenFunction r (V16Int16))
pmovsxbw256 = Ext.intrinsic ExtX86.avx2 "pmovsxbw"

pmovsxdq256 :: Ext.T (V4Int32 -> LLVM.CodeGenFunction r (V4Int64))
pmovsxdq256 = Ext.intrinsic ExtX86.avx2 "pmovsxdq"

pmovsxwd256 :: Ext.T (V8Int16 -> LLVM.CodeGenFunction r (V8Int32))
pmovsxwd256 = Ext.intrinsic ExtX86.avx2 "pmovsxwd"

pmovsxwq256 :: Ext.T (V8Int16 -> LLVM.CodeGenFunction r (V4Int64))
pmovsxwq256 = Ext.intrinsic ExtX86.avx2 "pmovsxwq"

pmovzxbd256 :: Ext.T (V16Int8 -> LLVM.CodeGenFunction r (V8Int32))
pmovzxbd256 = Ext.intrinsic ExtX86.avx2 "pmovzxbd"

pmovzxbq256 :: Ext.T (V16Int8 -> LLVM.CodeGenFunction r (V4Int64))
pmovzxbq256 = Ext.intrinsic ExtX86.avx2 "pmovzxbq"

pmovzxbw256 :: Ext.T (V16Int8 -> LLVM.CodeGenFunction r (V16Int16))
pmovzxbw256 = Ext.intrinsic ExtX86.avx2 "pmovzxbw"

pmovzxdq256 :: Ext.T (V4Int32 -> LLVM.CodeGenFunction r (V4Int64))
pmovzxdq256 = Ext.intrinsic ExtX86.avx2 "pmovzxdq"

pmovzxwd256 :: Ext.T (V8Int16 -> LLVM.CodeGenFunction r (V8Int32))
pmovzxwd256 = Ext.intrinsic ExtX86.avx2 "pmovzxwd"

pmovzxwq256 :: Ext.T (V8Int16 -> LLVM.CodeGenFunction r (V4Int64))
pmovzxwq256 = Ext.intrinsic ExtX86.avx2 "pmovzxwq"

pblendvb256 :: Ext.T (V32Int8 -> V32Int8 -> V32Int8 -> LLVM.CodeGenFunction r (V32Int8))
pblendvb256 = Ext.intrinsic ExtX86.avx2 "pblendvb"

pblendw256 :: Ext.T (V16Int16 -> V16Int16 -> LLVM.Value I.Int32 -> LLVM.CodeGenFunction r (V16Int16))
pblendw256 = Ext.intrinsic ExtX86.avx2 "pblendw"

pblendd128 :: Ext.T (V4Int32 -> V4Int32 -> LLVM.Value I.Int32 -> LLVM.CodeGenFunction r (V4Int32))
pblendd128 = Ext.intrinsic ExtX86.avx2 "pblendd.128"

pblendd256 :: Ext.T (V8Int32 -> V8Int32 -> LLVM.Value I.Int32 -> LLVM.CodeGenFunction r (V8Int32))
pblendd256 = Ext.intrinsic ExtX86.avx2 "pblendd.256"

vbroadcastss_ps :: Ext.T (V4Float -> LLVM.CodeGenFunction r (V4Float))
vbroadcastss_ps = Ext.intrinsic ExtX86.avx2 "vbroadcast.ss.ps"

vbroadcastsd_pd256 :: Ext.T (V2Double -> LLVM.CodeGenFunction r (V4Double))
vbroadcastsd_pd256 = Ext.intrinsic ExtX86.avx2 "vbroadcast.sd.pd.256"

vbroadcastss_ps256 :: Ext.T (V4Float -> LLVM.CodeGenFunction r (V8Float))
vbroadcastss_ps256 = Ext.intrinsic ExtX86.avx2 "vbroadcast.ss.ps.256"

vbroadcastsi256 :: Ext.T (LLVM.Value (Ptr ()) -> LLVM.CodeGenFunction r (V4Int64))
vbroadcastsi256 = Ext.intrinsic ExtX86.avx2 "vbroadcasti128"

pbroadcastb128 :: Ext.T (V16Int8 -> LLVM.CodeGenFunction r (V16Int8))
pbroadcastb128 = Ext.intrinsic ExtX86.avx2 "pbroadcastb.128"

pbroadcastb256 :: Ext.T (V16Int8 -> LLVM.CodeGenFunction r (V32Int8))
pbroadcastb256 = Ext.intrinsic ExtX86.avx2 "pbroadcastb.256"

pbroadcastw128 :: Ext.T (V8Int16 -> LLVM.CodeGenFunction r (V8Int16))
pbroadcastw128 = Ext.intrinsic ExtX86.avx2 "pbroadcastw.128"

pbroadcastw256 :: Ext.T (V8Int16 -> LLVM.CodeGenFunction r (V16Int16))
pbroadcastw256 = Ext.intrinsic ExtX86.avx2 "pbroadcastw.256"

pbroadcastd128 :: Ext.T (V4Int32 -> LLVM.CodeGenFunction r (V4Int32))
pbroadcastd128 = Ext.intrinsic ExtX86.avx2 "pbroadcastd.128"

pbroadcastd256 :: Ext.T (V4Int32 -> LLVM.CodeGenFunction r (V8Int32))
pbroadcastd256 = Ext.intrinsic ExtX86.avx2 "pbroadcastd.256"

pbroadcastq128 :: Ext.T (V2Int64 -> LLVM.CodeGenFunction r (V2Int64))
pbroadcastq128 = Ext.intrinsic ExtX86.avx2 "pbroadcastq.128"

pbroadcastq256 :: Ext.T (V2Int64 -> LLVM.CodeGenFunction r (V4Int64))
pbroadcastq256 = Ext.intrinsic ExtX86.avx2 "pbroadcastq.256"

permvarsi256 :: Ext.T (V8Int32 -> V8Int32 -> LLVM.CodeGenFunction r (V8Int32))
permvarsi256 = Ext.intrinsic ExtX86.avx2 "permd"

permvarsf256 :: Ext.T (V8Float -> V8Float -> LLVM.CodeGenFunction r (V8Float))
permvarsf256 = Ext.intrinsic ExtX86.avx2 "permps"

permti256 :: Ext.T (V4Int64 -> V4Int64 -> LLVM.Value I.Int8 -> LLVM.CodeGenFunction r (V4Int64))
permti256 = Ext.intrinsic ExtX86.avx2 "vperm2i128"

extract128i256 :: Ext.T (V4Int64 -> LLVM.Value I.Int8 -> LLVM.CodeGenFunction r (V2Int64))
extract128i256 = Ext.intrinsic ExtX86.avx2 "vextracti128"

insert128i256 :: Ext.T (V4Int64 -> V2Int64 -> LLVM.Value I.Int8 -> LLVM.CodeGenFunction r (V4Int64))
insert128i256 = Ext.intrinsic ExtX86.avx2 "vinserti128"

maskloadd :: Ext.T (LLVM.Value (Ptr ()) -> V4Int32 -> LLVM.CodeGenFunction r (V4Int32))
maskloadd = Ext.intrinsic ExtX86.avx2 "maskload.d"

maskloadq :: Ext.T (LLVM.Value (Ptr ()) -> V2Int64 -> LLVM.CodeGenFunction r (V2Int64))
maskloadq = Ext.intrinsic ExtX86.avx2 "maskload.q"

maskloadd256 :: Ext.T (LLVM.Value (Ptr ()) -> V8Int32 -> LLVM.CodeGenFunction r (V8Int32))
maskloadd256 = Ext.intrinsic ExtX86.avx2 "maskload.d.256"

maskloadq256 :: Ext.T (LLVM.Value (Ptr ()) -> V4Int64 -> LLVM.CodeGenFunction r (V4Int64))
maskloadq256 = Ext.intrinsic ExtX86.avx2 "maskload.q.256"

maskstored :: Ext.T (LLVM.Value (Ptr ()) -> V4Int32 -> V4Int32 -> LLVM.CodeGenFunction r (LLVM.Value ()))
maskstored = Ext.intrinsic ExtX86.avx2 "maskstore.d"

maskstoreq :: Ext.T (LLVM.Value (Ptr ()) -> V2Int64 -> V2Int64 -> LLVM.CodeGenFunction r (LLVM.Value ()))
maskstoreq = Ext.intrinsic ExtX86.avx2 "maskstore.q"

maskstored256 :: Ext.T (LLVM.Value (Ptr ()) -> V8Int32 -> V8Int32 -> LLVM.CodeGenFunction r (LLVM.Value ()))
maskstored256 = Ext.intrinsic ExtX86.avx2 "maskstore.d.256"

maskstoreq256 :: Ext.T (LLVM.Value (Ptr ()) -> V4Int64 -> V4Int64 -> LLVM.CodeGenFunction r (LLVM.Value ()))
maskstoreq256 = Ext.intrinsic ExtX86.avx2 "maskstore.q.256"

psllv4si :: Ext.T (V4Int32 -> V4Int32 -> LLVM.CodeGenFunction r (V4Int32))
psllv4si = Ext.intrinsic ExtX86.avx2 "psllv.d"

psllv8si :: Ext.T (V8Int32 -> V8Int32 -> LLVM.CodeGenFunction r (V8Int32))
psllv8si = Ext.intrinsic ExtX86.avx2 "psllv.d.256"

psllv2di :: Ext.T (V2Int64 -> V2Int64 -> LLVM.CodeGenFunction r (V2Int64))
psllv2di = Ext.intrinsic ExtX86.avx2 "psllv.q"

psllv4di :: Ext.T (V4Int64 -> V4Int64 -> LLVM.CodeGenFunction r (V4Int64))
psllv4di = Ext.intrinsic ExtX86.avx2 "psllv.q.256"

psrlv4si :: Ext.T (V4Int32 -> V4Int32 -> LLVM.CodeGenFunction r (V4Int32))
psrlv4si = Ext.intrinsic ExtX86.avx2 "psrlv.d"

psrlv8si :: Ext.T (V8Int32 -> V8Int32 -> LLVM.CodeGenFunction r (V8Int32))
psrlv8si = Ext.intrinsic ExtX86.avx2 "psrlv.d.256"

psrlv2di :: Ext.T (V2Int64 -> V2Int64 -> LLVM.CodeGenFunction r (V2Int64))
psrlv2di = Ext.intrinsic ExtX86.avx2 "psrlv.q"

psrlv4di :: Ext.T (V4Int64 -> V4Int64 -> LLVM.CodeGenFunction r (V4Int64))
psrlv4di = Ext.intrinsic ExtX86.avx2 "psrlv.q.256"

psrav4si :: Ext.T (V4Int32 -> V4Int32 -> LLVM.CodeGenFunction r (V4Int32))
psrav4si = Ext.intrinsic ExtX86.avx2 "psrav.d"

psrav8si :: Ext.T (V8Int32 -> V8Int32 -> LLVM.CodeGenFunction r (V8Int32))
psrav8si = Ext.intrinsic ExtX86.avx2 "psrav.d.256"

pmovmskb256 :: Ext.T (V32Int8 -> LLVM.CodeGenFunction r (LLVM.Value I.Int32))
pmovmskb256 = Ext.intrinsic ExtX86.avx2 "pmovmskb"

pshufb256 :: Ext.T (V32Int8 -> V32Int8 -> LLVM.CodeGenFunction r (V32Int8))
pshufb256 = Ext.intrinsic ExtX86.avx2 "pshuf.b"

mpsadbw256 :: Ext.T (V32Int8 -> V32Int8 -> LLVM.Value I.Int32 -> LLVM.CodeGenFunction r (V16Int16))
mpsadbw256 = Ext.intrinsic ExtX86.avx2 "mpsadbw"

movntdqa256 :: Ext.T (LLVM.Value (Ptr ()) -> LLVM.CodeGenFunction r (V4Int64))
movntdqa256 = Ext.intrinsic ExtX86.avx2 "movntdqa"

vfmaddss :: Ext.T (V4Float -> V4Float -> V4Float -> LLVM.CodeGenFunction r (V4Float))
vfmaddss = Ext.intrinsic ExtX86.fma4 "vfmadd.ss"

vfmaddsd :: Ext.T (V2Double -> V2Double -> V2Double -> LLVM.CodeGenFunction r (V2Double))
vfmaddsd = Ext.intrinsic ExtX86.fma4 "vfmadd.sd"

vfmaddps :: Ext.T (V4Float -> V4Float -> V4Float -> LLVM.CodeGenFunction r (V4Float))
vfmaddps = Ext.intrinsic ExtX86.fma4 "vfmadd.ps"

vfmaddpd :: Ext.T (V2Double -> V2Double -> V2Double -> LLVM.CodeGenFunction r (V2Double))
vfmaddpd = Ext.intrinsic ExtX86.fma4 "vfmadd.pd"

vfmaddps256 :: Ext.T (V8Float -> V8Float -> V8Float -> LLVM.CodeGenFunction r (V8Float))
vfmaddps256 = Ext.intrinsic ExtX86.fma4 "vfmadd.ps.256"

vfmaddpd256 :: Ext.T (V4Double -> V4Double -> V4Double -> LLVM.CodeGenFunction r (V4Double))
vfmaddpd256 = Ext.intrinsic ExtX86.fma4 "vfmadd.pd.256"

vfmsubss :: Ext.T (V4Float -> V4Float -> V4Float -> LLVM.CodeGenFunction r (V4Float))
vfmsubss = Ext.intrinsic ExtX86.fma4 "vfmsub.ss"

vfmsubsd :: Ext.T (V2Double -> V2Double -> V2Double -> LLVM.CodeGenFunction r (V2Double))
vfmsubsd = Ext.intrinsic ExtX86.fma4 "vfmsub.sd"

vfmsubps :: Ext.T (V4Float -> V4Float -> V4Float -> LLVM.CodeGenFunction r (V4Float))
vfmsubps = Ext.intrinsic ExtX86.fma4 "vfmsub.ps"

vfmsubpd :: Ext.T (V2Double -> V2Double -> V2Double -> LLVM.CodeGenFunction r (V2Double))
vfmsubpd = Ext.intrinsic ExtX86.fma4 "vfmsub.pd"

vfmsubps256 :: Ext.T (V8Float -> V8Float -> V8Float -> LLVM.CodeGenFunction r (V8Float))
vfmsubps256 = Ext.intrinsic ExtX86.fma4 "vfmsub.ps.256"

vfmsubpd256 :: Ext.T (V4Double -> V4Double -> V4Double -> LLVM.CodeGenFunction r (V4Double))
vfmsubpd256 = Ext.intrinsic ExtX86.fma4 "vfmsub.pd.256"

vfnmaddss :: Ext.T (V4Float -> V4Float -> V4Float -> LLVM.CodeGenFunction r (V4Float))
vfnmaddss = Ext.intrinsic ExtX86.fma4 "vfnmadd.ss"

vfnmaddsd :: Ext.T (V2Double -> V2Double -> V2Double -> LLVM.CodeGenFunction r (V2Double))
vfnmaddsd = Ext.intrinsic ExtX86.fma4 "vfnmadd.sd"

vfnmaddps :: Ext.T (V4Float -> V4Float -> V4Float -> LLVM.CodeGenFunction r (V4Float))
vfnmaddps = Ext.intrinsic ExtX86.fma4 "vfnmadd.ps"

vfnmaddpd :: Ext.T (V2Double -> V2Double -> V2Double -> LLVM.CodeGenFunction r (V2Double))
vfnmaddpd = Ext.intrinsic ExtX86.fma4 "vfnmadd.pd"

vfnmaddps256 :: Ext.T (V8Float -> V8Float -> V8Float -> LLVM.CodeGenFunction r (V8Float))
vfnmaddps256 = Ext.intrinsic ExtX86.fma4 "vfnmadd.ps.256"

vfnmaddpd256 :: Ext.T (V4Double -> V4Double -> V4Double -> LLVM.CodeGenFunction r (V4Double))
vfnmaddpd256 = Ext.intrinsic ExtX86.fma4 "vfnmadd.pd.256"

vfnmsubss :: Ext.T (V4Float -> V4Float -> V4Float -> LLVM.CodeGenFunction r (V4Float))
vfnmsubss = Ext.intrinsic ExtX86.fma4 "vfnmsub.ss"

vfnmsubsd :: Ext.T (V2Double -> V2Double -> V2Double -> LLVM.CodeGenFunction r (V2Double))
vfnmsubsd = Ext.intrinsic ExtX86.fma4 "vfnmsub.sd"

vfnmsubps :: Ext.T (V4Float -> V4Float -> V4Float -> LLVM.CodeGenFunction r (V4Float))
vfnmsubps = Ext.intrinsic ExtX86.fma4 "vfnmsub.ps"

vfnmsubpd :: Ext.T (V2Double -> V2Double -> V2Double -> LLVM.CodeGenFunction r (V2Double))
vfnmsubpd = Ext.intrinsic ExtX86.fma4 "vfnmsub.pd"

vfnmsubps256 :: Ext.T (V8Float -> V8Float -> V8Float -> LLVM.CodeGenFunction r (V8Float))
vfnmsubps256 = Ext.intrinsic ExtX86.fma4 "vfnmsub.ps.256"

vfnmsubpd256 :: Ext.T (V4Double -> V4Double -> V4Double -> LLVM.CodeGenFunction r (V4Double))
vfnmsubpd256 = Ext.intrinsic ExtX86.fma4 "vfnmsub.pd.256"

vfmaddsubps :: Ext.T (V4Float -> V4Float -> V4Float -> LLVM.CodeGenFunction r (V4Float))
vfmaddsubps = Ext.intrinsic ExtX86.fma4 "vfmaddsub.ps"

vfmaddsubpd :: Ext.T (V2Double -> V2Double -> V2Double -> LLVM.CodeGenFunction r (V2Double))
vfmaddsubpd = Ext.intrinsic ExtX86.fma4 "vfmaddsub.pd"

vfmaddsubps256 :: Ext.T (V8Float -> V8Float -> V8Float -> LLVM.CodeGenFunction r (V8Float))
vfmaddsubps256 = Ext.intrinsic ExtX86.fma4 "vfmaddsub.ps.256"

vfmaddsubpd256 :: Ext.T (V4Double -> V4Double -> V4Double -> LLVM.CodeGenFunction r (V4Double))
vfmaddsubpd256 = Ext.intrinsic ExtX86.fma4 "vfmaddsub.pd.256"

vfmsubaddps :: Ext.T (V4Float -> V4Float -> V4Float -> LLVM.CodeGenFunction r (V4Float))
vfmsubaddps = Ext.intrinsic ExtX86.fma4 "vfmsubadd.ps"

vfmsubaddpd :: Ext.T (V2Double -> V2Double -> V2Double -> LLVM.CodeGenFunction r (V2Double))
vfmsubaddpd = Ext.intrinsic ExtX86.fma4 "vfmsubadd.pd"

vfmsubaddps256 :: Ext.T (V8Float -> V8Float -> V8Float -> LLVM.CodeGenFunction r (V8Float))
vfmsubaddps256 = Ext.intrinsic ExtX86.fma4 "vfmsubadd.ps.256"

vfmsubaddpd256 :: Ext.T (V4Double -> V4Double -> V4Double -> LLVM.CodeGenFunction r (V4Double))
vfmsubaddpd256 = Ext.intrinsic ExtX86.fma4 "vfmsubadd.pd.256"