<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Can you add logic to bitcode upgrader to handle them?<div><br></div><div>Thanks,</div><div><br></div><div>Evan</div><div><br><div><div>On Jan 31, 2012, at 8:42 AM, Craig Topper wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">Here's what clang has in its emmintrin.h file<br><br><pre><pre><b><font color="#228B22">static</font></b> __inline__ __m128i <b><font color="#0000FF">__attribute__</font></b>((__always_inline__, __nodebug__))
<b><font color="#0000FF">_mm_cmpeq_epi8</font></b>(__m128i a, __m128i b)
{
<b><font color="#A020F0">return</font></b> (__m128i)((__v16qi)a == (__v16qi)b);
}
<b><font color="#228B22">static</font></b> __inline__ __m128i <b><font color="#0000FF">__attribute__</font></b>((__always_inline__, __nodebug__))
<b><font color="#0000FF">_mm_cmpeq_epi16</font></b>(__m128i a, __m128i b)
{
<b><font color="#A020F0">return</font></b> (__m128i)((__v8hi)a == (__v8hi)b);
}
<b><font color="#228B22">static</font></b> __inline__ __m128i <b><font color="#0000FF">__attribute__</font></b>((__always_inline__, __nodebug__))
<b><font color="#0000FF">_mm_cmpeq_epi32</font></b>(__m128i a, __m128i b)
{
<b><font color="#A020F0">return</font></b> (__m128i)((__v4si)a == (__v4si)b);
}</pre></pre><pre><pre><b><font color="#228B22">static</font></b> __inline__ __m128i <b><font color="#0000FF">__attribute__</font></b>((__always_inline__, __nodebug__))
<b><font color="#0000FF">_mm_cmpgt_epi8</font></b>(__m128i a, __m128i b)
{
<b><font color="#A020F0">return</font></b> (__m128i)((__v16qi)a > (__v16qi)b);
}
<b><font color="#228B22">static</font></b> __inline__ __m128i <b><font color="#0000FF">__attribute__</font></b>((__always_inline__, __nodebug__))
<b><font color="#0000FF">_mm_cmpgt_epi16</font></b>(__m128i a, __m128i b)
{
<b><font color="#A020F0">return</font></b> (__m128i)((__v8hi)a > (__v8hi)b);
}
<b><font color="#228B22">static</font></b> __inline__ __m128i <b><font color="#0000FF">__attribute__</font></b>((__always_inline__, __nodebug__))
<b><font color="#0000FF">_mm_cmpgt_epi32</font></b>(__m128i a, __m128i b)
{
<b><font color="#A020F0">return</font></b> (__m128i)((__v4si)a > (__v4si)b);
}</pre></pre><br><div class="gmail_quote">On Tue, Jan 31, 2012 at 2:35 AM, Duncan Sands <span dir="ltr"><<a href="mailto:baldrick@free.fr">baldrick@free.fr</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi Craig,<br>
<div class="im"><br>
> Remove pcmpgt/pcmpeq intrinsics as clang is not using them.<br>
<br>
</div>dragonegg is using them. Can the same effect be obtained some other way?<br>
<br>
Ciao, Duncan.<br>
<div class="HOEnZb"><div class="h5"><br>
><br>
> Modified:<br>
> llvm/trunk/include/llvm/IntrinsicsX86.td<br>
> llvm/trunk/lib/Target/X86/X86ISelLowering.cpp<br>
> llvm/trunk/test/CodeGen/X86/2006-05-11-InstrSched.ll<br>
> llvm/trunk/test/CodeGen/X86/avx-intrinsics-x86.ll<br>
> llvm/trunk/test/CodeGen/X86/avx2-intrinsics-x86.ll<br>
><br>
> Modified: llvm/trunk/include/llvm/IntrinsicsX86.td<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/IntrinsicsX86.td?rev=149367&r1=149366&r2=149367&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/IntrinsicsX86.td?rev=149367&r1=149366&r2=149367&view=diff</a><br>
> ==============================================================================<br>
> --- llvm/trunk/include/llvm/IntrinsicsX86.td (original)<br>
> +++ llvm/trunk/include/llvm/IntrinsicsX86.td Tue Jan 31 00:52:44 2012<br>
> @@ -452,28 +452,6 @@<br>
> llvm_i32_ty], [IntrNoMem]>;<br>
> }<br>
><br>
> -// Integer comparison ops<br>
> -let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".<br>
> - def int_x86_sse2_pcmpeq_b : GCCBuiltin<"__builtin_ia32_pcmpeqb128">,<br>
> - Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty,<br>
> - llvm_v16i8_ty], [IntrNoMem, Commutative]>;<br>
> - def int_x86_sse2_pcmpeq_w : GCCBuiltin<"__builtin_ia32_pcmpeqw128">,<br>
> - Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty,<br>
> - llvm_v8i16_ty], [IntrNoMem, Commutative]>;<br>
> - def int_x86_sse2_pcmpeq_d : GCCBuiltin<"__builtin_ia32_pcmpeqd128">,<br>
> - Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty,<br>
> - llvm_v4i32_ty], [IntrNoMem, Commutative]>;<br>
> - def int_x86_sse2_pcmpgt_b : GCCBuiltin<"__builtin_ia32_pcmpgtb128">,<br>
> - Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty,<br>
> - llvm_v16i8_ty], [IntrNoMem]>;<br>
> - def int_x86_sse2_pcmpgt_w : GCCBuiltin<"__builtin_ia32_pcmpgtw128">,<br>
> - Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty,<br>
> - llvm_v8i16_ty], [IntrNoMem]>;<br>
> - def int_x86_sse2_pcmpgt_d : GCCBuiltin<"__builtin_ia32_pcmpgtd128">,<br>
> - Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty,<br>
> - llvm_v4i32_ty], [IntrNoMem]>;<br>
> -}<br>
> -<br>
> // Conversion ops<br>
> let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".<br>
> def int_x86_sse2_cvtdq2pd : GCCBuiltin<"__builtin_ia32_cvtdq2pd">,<br>
> @@ -792,12 +770,6 @@<br>
><br>
> // Vector compare, min, max<br>
> let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".<br>
> - def int_x86_sse41_pcmpeqq : GCCBuiltin<"__builtin_ia32_pcmpeqq">,<br>
> - Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty],<br>
> - [IntrNoMem, Commutative]>;<br>
> - def int_x86_sse42_pcmpgtq : GCCBuiltin<"__builtin_ia32_pcmpgtq">,<br>
> - Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty],<br>
> - [IntrNoMem]>;<br>
> def int_x86_sse41_pmaxsb : GCCBuiltin<"__builtin_ia32_pmaxsb128">,<br>
> Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty],<br>
> [IntrNoMem, Commutative]>;<br>
> @@ -1515,34 +1487,6 @@<br>
> llvm_i32_ty], [IntrNoMem]>;<br>
> }<br>
><br>
> -// Integer comparison ops<br>
> -let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".<br>
> - def int_x86_avx2_pcmpeq_b : GCCBuiltin<"__builtin_ia32_pcmpeqb256">,<br>
> - Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty],<br>
> - [IntrNoMem, Commutative]>;<br>
> - def int_x86_avx2_pcmpeq_w : GCCBuiltin<"__builtin_ia32_pcmpeqw256">,<br>
> - Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty],<br>
> - [IntrNoMem, Commutative]>;<br>
> - def int_x86_avx2_pcmpeq_d : GCCBuiltin<"__builtin_ia32_pcmpeqd256">,<br>
> - Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty],<br>
> - [IntrNoMem, Commutative]>;<br>
> - def int_x86_avx2_pcmpeq_q : GCCBuiltin<"__builtin_ia32_pcmpeqq256">,<br>
> - Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty],<br>
> - [IntrNoMem, Commutative]>;<br>
> - def int_x86_avx2_pcmpgt_b : GCCBuiltin<"__builtin_ia32_pcmpgtb256">,<br>
> - Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty],<br>
> - [IntrNoMem]>;<br>
> - def int_x86_avx2_pcmpgt_w : GCCBuiltin<"__builtin_ia32_pcmpgtw256">,<br>
> - Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty],<br>
> - [IntrNoMem]>;<br>
> - def int_x86_avx2_pcmpgt_d : GCCBuiltin<"__builtin_ia32_pcmpgtd256">,<br>
> - Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty],<br>
> - [IntrNoMem]>;<br>
> - def int_x86_avx2_pcmpgt_q : GCCBuiltin<"__builtin_ia32_pcmpgtq256">,<br>
> - Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty],<br>
> - [IntrNoMem]>;<br>
> -}<br>
> -<br>
> // Pack ops.<br>
> let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".<br>
> def int_x86_avx2_packsswb : GCCBuiltin<"__builtin_ia32_packsswb256">,<br>
><br>
> Modified: llvm/trunk/lib/Target/X86/X86ISelLowering.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp?rev=149367&r1=149366&r2=149367&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp?rev=149367&r1=149366&r2=149367&view=diff</a><br>
> ==============================================================================<br>
> --- llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (original)<br>
> +++ llvm/trunk/lib/Target/X86/X86ISelLowering.cpp Tue Jan 31 00:52:44 2012<br>
> @@ -9492,26 +9492,6 @@<br>
> case Intrinsic::x86_avx2_psrav_d_256:<br>
> return DAG.getNode(ISD::SRA, dl, Op.getValueType(),<br>
> Op.getOperand(1), Op.getOperand(2));<br>
> - case Intrinsic::x86_sse2_pcmpeq_b:<br>
> - case Intrinsic::x86_sse2_pcmpeq_w:<br>
> - case Intrinsic::x86_sse2_pcmpeq_d:<br>
> - case Intrinsic::x86_sse41_pcmpeqq:<br>
> - case Intrinsic::x86_avx2_pcmpeq_b:<br>
> - case Intrinsic::x86_avx2_pcmpeq_w:<br>
> - case Intrinsic::x86_avx2_pcmpeq_d:<br>
> - case Intrinsic::x86_avx2_pcmpeq_q:<br>
> - return DAG.getNode(X86ISD::PCMPEQ, dl, Op.getValueType(),<br>
> - Op.getOperand(1), Op.getOperand(2));<br>
> - case Intrinsic::x86_sse2_pcmpgt_b:<br>
> - case Intrinsic::x86_sse2_pcmpgt_w:<br>
> - case Intrinsic::x86_sse2_pcmpgt_d:<br>
> - case Intrinsic::x86_sse42_pcmpgtq:<br>
> - case Intrinsic::x86_avx2_pcmpgt_b:<br>
> - case Intrinsic::x86_avx2_pcmpgt_w:<br>
> - case Intrinsic::x86_avx2_pcmpgt_d:<br>
> - case Intrinsic::x86_avx2_pcmpgt_q:<br>
> - return DAG.getNode(X86ISD::PCMPGT, dl, Op.getValueType(),<br>
> - Op.getOperand(1), Op.getOperand(2));<br>
> case Intrinsic::x86_ssse3_pshuf_b_128:<br>
> case Intrinsic::x86_avx2_pshuf_b:<br>
> return DAG.getNode(X86ISD::PSHUFB, dl, Op.getValueType(),<br>
><br>
> Modified: llvm/trunk/test/CodeGen/X86/2006-05-11-InstrSched.ll<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/2006-05-11-InstrSched.ll?rev=149367&r1=149366&r2=149367&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/2006-05-11-InstrSched.ll?rev=149367&r1=149366&r2=149367&view=diff</a><br>
> ==============================================================================<br>
> --- llvm/trunk/test/CodeGen/X86/2006-05-11-InstrSched.ll (original)<br>
> +++ llvm/trunk/test/CodeGen/X86/2006-05-11-InstrSched.ll Tue Jan 31 00:52:44 2012<br>
> @@ -30,7 +30,7 @@<br>
> %tmp87 = bitcast<16 x i8> %tmp66 to<4 x i32> ;<<4 x i32>> [#uses=1]<br>
> %tmp88 = add<4 x i32> %tmp87, %tmp77 ;<<4 x i32>> [#uses=2]<br>
> %tmp88.upgrd.4 = bitcast<4 x i32> %tmp88 to<2 x i64> ;<<2 x i64>> [#uses=1]<br>
> - %tmp99 = tail call<4 x i32> @llvm.x86.sse2.pcmpgt.d(<4 x i32> %tmp88,<4 x i32> %tmp55 ) ;<<4 x i32>> [#uses=1]<br>
> + %tmp99 = tail call<4 x i32> @llvm.x86.sse2.psra.d(<4 x i32> %tmp88,<4 x i32> %tmp55 ) ;<<4 x i32>> [#uses=1]<br>
> %tmp99.upgrd.5 = bitcast<4 x i32> %tmp99 to<2 x i64> ;<<2 x i64>> [#uses=2]<br>
> %tmp110 = xor<2 x i64> %tmp99.upgrd.5,< i64 -1, i64 -1> ;<<2 x i64>> [#uses=1]<br>
> %tmp111 = and<2 x i64> %tmp110, %tmp55.upgrd.2 ;<<2 x i64>> [#uses=1]<br>
> @@ -48,4 +48,4 @@<br>
> ret void<br>
> }<br>
><br>
> -declare<4 x i32> @llvm.x86.sse2.pcmpgt.d(<4 x i32>,<4 x i32>)<br>
> +declare<4 x i32> @llvm.x86.sse2.psra.d(<4 x i32>,<4 x i32>)<br>
><br>
> Modified: llvm/trunk/test/CodeGen/X86/avx-intrinsics-x86.ll<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/avx-intrinsics-x86.ll?rev=149367&r1=149366&r2=149367&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/avx-intrinsics-x86.ll?rev=149367&r1=149366&r2=149367&view=diff</a><br>
> ==============================================================================<br>
> --- llvm/trunk/test/CodeGen/X86/avx-intrinsics-x86.ll (original)<br>
> +++ llvm/trunk/test/CodeGen/X86/avx-intrinsics-x86.ll Tue Jan 31 00:52:44 2012<br>
> @@ -369,54 +369,6 @@<br>
> declare<8 x i16> @llvm.x86.sse2.pavg.w(<8 x i16>,<8 x i16>) nounwind readnone<br>
><br>
><br>
> -define<16 x i8> @test_x86_sse2_pcmpeq_b(<16 x i8> %a0,<16 x i8> %a1) {<br>
> - ; CHECK: vpcmpeqb<br>
> - %res = call<16 x i8> @llvm.x86.sse2.pcmpeq.b(<16 x i8> %a0,<16 x i8> %a1) ;<<16 x i8>> [#uses=1]<br>
> - ret<16 x i8> %res<br>
> -}<br>
> -declare<16 x i8> @llvm.x86.sse2.pcmpeq.b(<16 x i8>,<16 x i8>) nounwind readnone<br>
> -<br>
> -<br>
> -define<4 x i32> @test_x86_sse2_pcmpeq_d(<4 x i32> %a0,<4 x i32> %a1) {<br>
> - ; CHECK: vpcmpeqd<br>
> - %res = call<4 x i32> @llvm.x86.sse2.pcmpeq.d(<4 x i32> %a0,<4 x i32> %a1) ;<<4 x i32>> [#uses=1]<br>
> - ret<4 x i32> %res<br>
> -}<br>
> -declare<4 x i32> @llvm.x86.sse2.pcmpeq.d(<4 x i32>,<4 x i32>) nounwind readnone<br>
> -<br>
> -<br>
> -define<8 x i16> @test_x86_sse2_pcmpeq_w(<8 x i16> %a0,<8 x i16> %a1) {<br>
> - ; CHECK: vpcmpeqw<br>
> - %res = call<8 x i16> @llvm.x86.sse2.pcmpeq.w(<8 x i16> %a0,<8 x i16> %a1) ;<<8 x i16>> [#uses=1]<br>
> - ret<8 x i16> %res<br>
> -}<br>
> -declare<8 x i16> @llvm.x86.sse2.pcmpeq.w(<8 x i16>,<8 x i16>) nounwind readnone<br>
> -<br>
> -<br>
> -define<16 x i8> @test_x86_sse2_pcmpgt_b(<16 x i8> %a0,<16 x i8> %a1) {<br>
> - ; CHECK: vpcmpgtb<br>
> - %res = call<16 x i8> @llvm.x86.sse2.pcmpgt.b(<16 x i8> %a0,<16 x i8> %a1) ;<<16 x i8>> [#uses=1]<br>
> - ret<16 x i8> %res<br>
> -}<br>
> -declare<16 x i8> @llvm.x86.sse2.pcmpgt.b(<16 x i8>,<16 x i8>) nounwind readnone<br>
> -<br>
> -<br>
> -define<4 x i32> @test_x86_sse2_pcmpgt_d(<4 x i32> %a0,<4 x i32> %a1) {<br>
> - ; CHECK: vpcmpgtd<br>
> - %res = call<4 x i32> @llvm.x86.sse2.pcmpgt.d(<4 x i32> %a0,<4 x i32> %a1) ;<<4 x i32>> [#uses=1]<br>
> - ret<4 x i32> %res<br>
> -}<br>
> -declare<4 x i32> @llvm.x86.sse2.pcmpgt.d(<4 x i32>,<4 x i32>) nounwind readnone<br>
> -<br>
> -<br>
> -define<8 x i16> @test_x86_sse2_pcmpgt_w(<8 x i16> %a0,<8 x i16> %a1) {<br>
> - ; CHECK: vpcmpgtw<br>
> - %res = call<8 x i16> @llvm.x86.sse2.pcmpgt.w(<8 x i16> %a0,<8 x i16> %a1) ;<<8 x i16>> [#uses=1]<br>
> - ret<8 x i16> %res<br>
> -}<br>
> -declare<8 x i16> @llvm.x86.sse2.pcmpgt.w(<8 x i16>,<8 x i16>) nounwind readnone<br>
> -<br>
> -<br>
> define<4 x i32> @test_x86_sse2_pmadd_wd(<8 x i16> %a0,<8 x i16> %a1) {<br>
> ; CHECK: vpmaddwd<br>
> %res = call<4 x i32> @llvm.x86.sse2.pmadd.wd(<8 x i16> %a0,<8 x i16> %a1) ;<<4 x i32>> [#uses=1]<br>
> @@ -950,14 +902,6 @@<br>
> declare<8 x i16> @llvm.x86.sse41.pblendw(<8 x i16>,<8 x i16>, i32) nounwind readnone<br>
><br>
><br>
> -define<2 x i64> @test_x86_sse41_pcmpeqq(<2 x i64> %a0,<2 x i64> %a1) {<br>
> - ; CHECK: vpcmpeqq<br>
> - %res = call<2 x i64> @llvm.x86.sse41.pcmpeqq(<2 x i64> %a0,<2 x i64> %a1) ;<<2 x i64>> [#uses=1]<br>
> - ret<2 x i64> %res<br>
> -}<br>
> -declare<2 x i64> @llvm.x86.sse41.pcmpeqq(<2 x i64>,<2 x i64>) nounwind readnone<br>
> -<br>
> -<br>
> define<8 x i16> @test_x86_sse41_phminposuw(<8 x i16> %a0) {<br>
> ; CHECK: vphminposuw<br>
> %res = call<8 x i16> @llvm.x86.sse41.phminposuw(<8 x i16> %a0) ;<<8 x i16>> [#uses=1]<br>
> @@ -1271,14 +1215,6 @@<br>
> declare<16 x i8> @llvm.x86.sse42.pcmpestrm128(<16 x i8>, i32,<16 x i8>, i32, i8) nounwind readnone<br>
><br>
><br>
> -define<2 x i64> @test_x86_sse42_pcmpgtq(<2 x i64> %a0,<2 x i64> %a1) {<br>
> - ; CHECK: vpcmpgtq<br>
> - %res = call<2 x i64> @llvm.x86.sse42.pcmpgtq(<2 x i64> %a0,<2 x i64> %a1) ;<<2 x i64>> [#uses=1]<br>
> - ret<2 x i64> %res<br>
> -}<br>
> -declare<2 x i64> @llvm.x86.sse42.pcmpgtq(<2 x i64>,<2 x i64>) nounwind readnone<br>
> -<br>
> -<br>
> define i32 @test_x86_sse42_pcmpistri128(<16 x i8> %a0,<16 x i8> %a1) {<br>
> ; CHECK: vpcmpistri<br>
> ; CHECK: movl<br>
><br>
> Modified: llvm/trunk/test/CodeGen/X86/avx2-intrinsics-x86.ll<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/avx2-intrinsics-x86.ll?rev=149367&r1=149366&r2=149367&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/avx2-intrinsics-x86.ll?rev=149367&r1=149366&r2=149367&view=diff</a><br>
> ==============================================================================<br>
> --- llvm/trunk/test/CodeGen/X86/avx2-intrinsics-x86.ll (original)<br>
> +++ llvm/trunk/test/CodeGen/X86/avx2-intrinsics-x86.ll Tue Jan 31 00:52:44 2012<br>
> @@ -72,54 +72,6 @@<br>
> declare<16 x i16> @llvm.x86.avx2.pavg.w(<16 x i16>,<16 x i16>) nounwind readnone<br>
><br>
><br>
> -define<32 x i8> @test_x86_avx2_pcmpeq_b(<32 x i8> %a0,<32 x i8> %a1) {<br>
> - ; CHECK: vpcmpeqb<br>
> - %res = call<32 x i8> @llvm.x86.avx2.pcmpeq.b(<32 x i8> %a0,<32 x i8> %a1) ;<<32 x i8>> [#uses=1]<br>
> - ret<32 x i8> %res<br>
> -}<br>
> -declare<32 x i8> @llvm.x86.avx2.pcmpeq.b(<32 x i8>,<32 x i8>) nounwind readnone<br>
> -<br>
> -<br>
> -define<8 x i32> @test_x86_avx2_pcmpeq_d(<8 x i32> %a0,<8 x i32> %a1) {<br>
> - ; CHECK: vpcmpeqd<br>
> - %res = call<8 x i32> @llvm.x86.avx2.pcmpeq.d(<8 x i32> %a0,<8 x i32> %a1) ;<<8 x i32>> [#uses=1]<br>
> - ret<8 x i32> %res<br>
> -}<br>
> -declare<8 x i32> @llvm.x86.avx2.pcmpeq.d(<8 x i32>,<8 x i32>) nounwind readnone<br>
> -<br>
> -<br>
> -define<16 x i16> @test_x86_avx2_pcmpeq_w(<16 x i16> %a0,<16 x i16> %a1) {<br>
> - ; CHECK: vpcmpeqw<br>
> - %res = call<16 x i16> @llvm.x86.avx2.pcmpeq.w(<16 x i16> %a0,<16 x i16> %a1) ;<<16 x i16>> [#uses=1]<br>
> - ret<16 x i16> %res<br>
> -}<br>
> -declare<16 x i16> @llvm.x86.avx2.pcmpeq.w(<16 x i16>,<16 x i16>) nounwind readnone<br>
> -<br>
> -<br>
> -define<32 x i8> @test_x86_avx2_pcmpgt_b(<32 x i8> %a0,<32 x i8> %a1) {<br>
> - ; CHECK: vpcmpgtb<br>
> - %res = call<32 x i8> @llvm.x86.avx2.pcmpgt.b(<32 x i8> %a0,<32 x i8> %a1) ;<<32 x i8>> [#uses=1]<br>
> - ret<32 x i8> %res<br>
> -}<br>
> -declare<32 x i8> @llvm.x86.avx2.pcmpgt.b(<32 x i8>,<32 x i8>) nounwind readnone<br>
> -<br>
> -<br>
> -define<8 x i32> @test_x86_avx2_pcmpgt_d(<8 x i32> %a0,<8 x i32> %a1) {<br>
> - ; CHECK: vpcmpgtd<br>
> - %res = call<8 x i32> @llvm.x86.avx2.pcmpgt.d(<8 x i32> %a0,<8 x i32> %a1) ;<<8 x i32>> [#uses=1]<br>
> - ret<8 x i32> %res<br>
> -}<br>
> -declare<8 x i32> @llvm.x86.avx2.pcmpgt.d(<8 x i32>,<8 x i32>) nounwind readnone<br>
> -<br>
> -<br>
> -define<16 x i16> @test_x86_avx2_pcmpgt_w(<16 x i16> %a0,<16 x i16> %a1) {<br>
> - ; CHECK: vpcmpgtw<br>
> - %res = call<16 x i16> @llvm.x86.avx2.pcmpgt.w(<16 x i16> %a0,<16 x i16> %a1) ;<<16 x i16>> [#uses=1]<br>
> - ret<16 x i16> %res<br>
> -}<br>
> -declare<16 x i16> @llvm.x86.avx2.pcmpgt.w(<16 x i16>,<16 x i16>) nounwind readnone<br>
> -<br>
> -<br>
> define<8 x i32> @test_x86_avx2_pmadd_wd(<16 x i16> %a0,<16 x i16> %a1) {<br>
> ; CHECK: vpmaddwd<br>
> %res = call<8 x i32> @llvm.x86.avx2.pmadd.wd(<16 x i16> %a0,<16 x i16> %a1) ;<<8 x i32>> [#uses=1]<br>
> @@ -553,14 +505,6 @@<br>
> declare<16 x i16> @llvm.x86.avx2.pblendw(<16 x i16>,<16 x i16>, i32) nounwind readnone<br>
><br>
><br>
> -define<4 x i64> @test_x86_avx2_pcmpeqq(<4 x i64> %a0,<4 x i64> %a1) {<br>
> - ; CHECK: vpcmpeqq<br>
> - %res = call<4 x i64> @llvm.x86.avx2.pcmpeq.q(<4 x i64> %a0,<4 x i64> %a1) ;<<4 x i64>> [#uses=1]<br>
> - ret<4 x i64> %res<br>
> -}<br>
> -declare<4 x i64> @llvm.x86.avx2.pcmpeq.q(<4 x i64>,<4 x i64>) nounwind readnone<br>
> -<br>
> -<br>
> define<32 x i8> @test_x86_avx2_pmaxsb(<32 x i8> %a0,<32 x i8> %a1) {<br>
> ; CHECK: vpmaxsb<br>
> %res = call<32 x i8> @llvm.x86.avx2.pmaxs.b(<32 x i8> %a0,<32 x i8> %a1) ;<<32 x i8>> [#uses=1]<br>
> @@ -729,14 +673,6 @@<br>
> declare<4 x i64> @llvm.x86.avx2.pmul.dq(<8 x i32>,<8 x i32>) nounwind readnone<br>
><br>
><br>
> -define<4 x i64> @test_x86_avx2_pcmpgtq(<4 x i64> %a0,<4 x i64> %a1) {<br>
> - ; CHECK: vpcmpgtq<br>
> - %res = call<4 x i64> @llvm.x86.avx2.pcmpgt.q(<4 x i64> %a0,<4 x i64> %a1) ;<<4 x i64>> [#uses=1]<br>
> - ret<4 x i64> %res<br>
> -}<br>
> -declare<4 x i64> @llvm.x86.avx2.pcmpgt.q(<4 x i64>,<4 x i64>) nounwind readnone<br>
> -<br>
> -<br>
> define<4 x i64> @test_x86_avx2_vbroadcasti128(i8* %a0) {<br>
> ; CHECK: vbroadcasti128<br>
> %res = call<4 x i64> @llvm.x86.avx2.vbroadcasti128(i8* %a0) ;<<4 x i64>> [#uses=1]<br>
><br>
><br>
> _______________________________________________<br>
> llvm-commits mailing list<br>
> <a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>~Craig<br>
_______________________________________________<br>llvm-commits mailing list<br><a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits<br></blockquote></div><br></div></body></html>