| { |
| "intrinsic_prefix": "_mm", |
| "llvm_prefix": "llvm.x86.sse2.", |
| "intrinsics": [ |
| { |
| "intrinsic": "_adds_{0.data_type}", |
| "width": [128], |
| "llvm": "padd{0.kind_short}s.{0.data_type_short}", |
| "ret": "i(8-16)", |
| "args": ["0", "0"] |
| }, |
| { |
| "intrinsic": "_avg_{0.data_type}", |
| "width": [128], |
| "llvm": "pavg.{0.data_type_short}", |
| "ret": "u(8-16)", |
| "args": ["0", "0"] |
| }, |
| { |
| "intrinsic": "_lfence", |
| "width": [128], |
| "llvm": "lfence", |
| "ret": "V", |
| "args": [] |
| }, |
| { |
| "intrinsic": "_madd_epi16", |
| "width": [128], |
| "llvm": "pmadd.wd", |
| "ret": "s32", |
| "args": ["s16", "s16"] |
| }, |
| { |
| "intrinsic": "_maskmoveu_si128", |
| "width": [128], |
| "llvm": "maskmov.dqu", |
| "ret": "V", |
| "args": ["u8", "u8", "U8Pm"] |
| }, |
| { |
| "intrinsic": "_max_{0.data_type}", |
| "width": [128], |
| "llvm": "pmax{0.kind}.{0.data_type_short}", |
| "ret": ["s16", "u8"], |
| "args": ["0", "0"] |
| }, |
| { |
| "intrinsic": "_max_pd", |
| "width": [128], |
| "llvm": "max.pd", |
| "ret": "f64", |
| "args": ["0", "0"] |
| }, |
| { |
| "intrinsic": "_mfence", |
| "width": [128], |
| "llvm": "fence", |
| "ret": "V", |
| "args": [] |
| }, |
| { |
| "intrinsic": "_min_{0.data_type}", |
| "width": [128], |
| "llvm": "pmin{0.kind}.{0.data_type_short}", |
| "ret": ["s16", "u8"], |
| "args": ["0", "0"] |
| }, |
| { |
| "intrinsic": "_min_pd", |
| "width": [128], |
| "llvm": "min.pd", |
| "ret": "f64", |
| "args": ["0", "0"] |
| }, |
| { |
| "intrinsic": "_movemask_pd", |
| "width": [128], |
| "llvm": "movmsk.pd", |
| "ret": "S32", |
| "args": ["f64"] |
| }, |
| { |
| "intrinsic": "_movemask_epi8", |
| "width": [128], |
| "llvm": "pmovmskb.128", |
| "ret": "S32", |
| "args": ["s8"] |
| }, |
| { |
| "intrinsic": "_mul_epu32", |
| "width": [128], |
| "llvm": "pmulu.dq", |
| "ret": "u64", |
| "args": ["0dn", "0dn"] |
| }, |
| { |
| "intrinsic": "_mulhi_{0.data_type}", |
| "width": [128], |
| "llvm": "pmulh{0.kind_short}.w", |
| "ret": "i16", |
| "args": ["0", "0"] |
| }, |
| { |
| "intrinsic": "_packs_{1.data_type}", |
| "width": [128], |
| "llvm": "packss{1.data_type_short}{0.data_type_short}.128", |
| "ret": "s(8-16)", |
| "args": ["0hw", "0hw"] |
| }, |
| { |
| "intrinsic": "_packus_epi16", |
| "width": [128], |
| "llvm": "packuswb.128", |
| "ret": "u8", |
| "args": ["s16", "s16"] |
| }, |
| { |
| "intrinsic": "_sad_epu8", |
| "width": [128], |
| "llvm": "psad.bw", |
| "ret": "u64", |
| "args": ["u8", "u8"] |
| }, |
| { |
| "intrinsic": "_sfence", |
| "width": [128], |
| "llvm": "sfence", |
| "ret": "V", |
| "args": [] |
| }, |
| { |
| "intrinsic": "_sqrt_pd", |
| "width": [128], |
| "llvm": "!llvm.sqrt.v2f64", |
| "ret": "f64", |
| "args": ["0"] |
| }, |
| { |
| "intrinsic": "_storeu_pd", |
| "width": [128], |
| "llvm": "storeu.pd", |
| "ret": "V", |
| "args": ["F64Pm/U8", "f64"] |
| }, |
| { |
| "intrinsic": "_storeu_si128", |
| "width": [128], |
| "llvm": "storeu.dq", |
| "ret": "V", |
| "args": ["u8Pm/U8", "u8"] |
| }, |
| { |
| "intrinsic": "_subs_{0.data_type}", |
| "width": [128], |
| "llvm": "psub{0.kind_short}s.{0.data_type_short}", |
| "ret": "i(8-16)", |
| "args": ["0", "0"] |
| } |
| ] |
| } |