[llvm-commits] [llvm] r57732 - in /llvm/branches/release_24: docs/LangRef.html lib/AsmParser/LLLexer.cpp test/Assembler/vector-cmp.ll test/CodeGen/X86/2008-07-23-VSetCC.ll test/CodeGen/X86/vfcmp.ll test/Transforms/ConstProp/2008-07-07-VectorCompare.ll

Tanya Lattner tonic at nondot.org
Fri Oct 17 14:36:30 PDT 2008


Author: tbrethou
Date: Fri Oct 17 16:36:29 2008
New Revision: 57732

URL: http://llvm.org/viewvc/llvm-project?rev=57732&view=rev
Log:
remove v[if]cmp functionality from the 2.4 release.  These instructions will be removed or substantially changes in mainline after the 2.4 release and we don't want to have to support these for backwards compatibility purposes.  Patch by Chris.

Modified:
    llvm/branches/release_24/docs/LangRef.html
    llvm/branches/release_24/lib/AsmParser/LLLexer.cpp
    llvm/branches/release_24/test/Assembler/vector-cmp.ll
    llvm/branches/release_24/test/CodeGen/X86/2008-07-23-VSetCC.ll
    llvm/branches/release_24/test/CodeGen/X86/vfcmp.ll
    llvm/branches/release_24/test/Transforms/ConstProp/2008-07-07-VectorCompare.ll

Modified: llvm/branches/release_24/docs/LangRef.html
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_24/docs/LangRef.html?rev=57732&r1=57731&r2=57732&view=diff

==============================================================================
--- llvm/branches/release_24/docs/LangRef.html (original)
+++ llvm/branches/release_24/docs/LangRef.html Fri Oct 17 16:36:29 2008
@@ -147,8 +147,6 @@
         <ol>
           <li><a href="#i_icmp">'<tt>icmp</tt>' Instruction</a></li>
           <li><a href="#i_fcmp">'<tt>fcmp</tt>' Instruction</a></li>
-          <li><a href="#i_vicmp">'<tt>vicmp</tt>' Instruction</a></li>
-          <li><a href="#i_vfcmp">'<tt>vfcmp</tt>' Instruction</a></li>
           <li><a href="#i_phi">'<tt>phi</tt>'   Instruction</a></li>
           <li><a href="#i_select">'<tt>select</tt>' Instruction</a></li>
           <li><a href="#i_call">'<tt>call</tt>'  Instruction</a></li>
@@ -1778,12 +1776,6 @@
   <dt><b><tt>fcmp COND ( VAL1, VAL2 )</tt></b></dt>
   <dd>Performs the <a href="#i_fcmp">fcmp operation</a> on constants.</dd>
 
-  <dt><b><tt>vicmp COND ( VAL1, VAL2 )</tt></b></dt>
-  <dd>Performs the <a href="#i_vicmp">vicmp operation</a> on constants.</dd>
-
-  <dt><b><tt>vfcmp COND ( VAL1, VAL2 )</tt></b></dt>
-  <dd>Performs the <a href="#i_vfcmp">vfcmp operation</a> on constants.</dd>
-
   <dt><b><tt>extractelement ( VAL, IDX )</tt></b></dt>
 
   <dd>Perform the <a href="#i_extractelement">extractelement
@@ -4053,106 +4045,6 @@
 
 <!-- _______________________________________________________________________ -->
 <div class="doc_subsubsection">
-  <a name="i_vicmp">'<tt>vicmp</tt>' Instruction</a>
-</div>
-<div class="doc_text">
-<h5>Syntax:</h5>
-<pre>  <result> = vicmp <cond> <ty> <op1>, <op2>   <i>; yields {ty}:result</i>
-</pre>
-<h5>Overview:</h5>
-<p>The '<tt>vicmp</tt>' instruction returns an integer vector value based on
-element-wise comparison of its two integer vector operands.</p>
-<h5>Arguments:</h5>
-<p>The '<tt>vicmp</tt>' instruction takes three operands. The first operand is
-the condition code indicating the kind of comparison to perform. It is not
-a value, just a keyword. The possible condition code are:
-<ol>
-  <li><tt>eq</tt>: equal</li>
-  <li><tt>ne</tt>: not equal </li>
-  <li><tt>ugt</tt>: unsigned greater than</li>
-  <li><tt>uge</tt>: unsigned greater or equal</li>
-  <li><tt>ult</tt>: unsigned less than</li>
-  <li><tt>ule</tt>: unsigned less or equal</li>
-  <li><tt>sgt</tt>: signed greater than</li>
-  <li><tt>sge</tt>: signed greater or equal</li>
-  <li><tt>slt</tt>: signed less than</li>
-  <li><tt>sle</tt>: signed less or equal</li>
-</ol>
-<p>The remaining two arguments must be <a href="#t_vector">vector</a> or
-<a href="#t_integer">integer</a> typed. They must also be identical types.</p>
-<h5>Semantics:</h5>
-<p>The '<tt>vicmp</tt>' instruction compares <tt>op1</tt> and <tt>op2</tt>
-according to the condition code given as <tt>cond</tt>. The comparison yields a 
-<a href="#t_vector">vector</a> of <a href="#t_integer">integer</a> result, of
-identical type as the values being compared.  The most significant bit in each
-element is 1 if the element-wise comparison evaluates to true, and is 0
-otherwise.  All other bits of the result are undefined.  The condition codes
-are evaluated identically to the <a href="#i_icmp">'<tt>icmp</tt>'
-instruction</a>.
-
-<h5>Example:</h5>
-<pre>
-  <result> = vicmp eq <2 x i32> < i32 4, i32 0>, < i32 5, i32 0>   <i>; yields: result=<2 x i32> < i32 0, i32 -1 ></i>
-  <result> = vicmp ult <2 x i8 > < i8 1, i8 2>, < i8 2, i8 2 >        <i>; yields: result=<2 x i8> < i8 -1, i8 0 ></i>
-</pre>
-</div>
-
-<!-- _______________________________________________________________________ -->
-<div class="doc_subsubsection">
-  <a name="i_vfcmp">'<tt>vfcmp</tt>' Instruction</a>
-</div>
-<div class="doc_text">
-<h5>Syntax:</h5>
-<pre>  <result> = vfcmp <cond> <ty> <op1>, <op2></pre>
-<h5>Overview:</h5>
-<p>The '<tt>vfcmp</tt>' instruction returns an integer vector value based on
-element-wise comparison of its two floating point vector operands.  The output
-elements have the same width as the input elements.</p>
-<h5>Arguments:</h5>
-<p>The '<tt>vfcmp</tt>' instruction takes three operands. The first operand is
-the condition code indicating the kind of comparison to perform. It is not
-a value, just a keyword. The possible condition code are:
-<ol>
-  <li><tt>false</tt>: no comparison, always returns false</li>
-  <li><tt>oeq</tt>: ordered and equal</li>
-  <li><tt>ogt</tt>: ordered and greater than </li>
-  <li><tt>oge</tt>: ordered and greater than or equal</li>
-  <li><tt>olt</tt>: ordered and less than </li>
-  <li><tt>ole</tt>: ordered and less than or equal</li>
-  <li><tt>one</tt>: ordered and not equal</li>
-  <li><tt>ord</tt>: ordered (no nans)</li>
-  <li><tt>ueq</tt>: unordered or equal</li>
-  <li><tt>ugt</tt>: unordered or greater than </li>
-  <li><tt>uge</tt>: unordered or greater than or equal</li>
-  <li><tt>ult</tt>: unordered or less than </li>
-  <li><tt>ule</tt>: unordered or less than or equal</li>
-  <li><tt>une</tt>: unordered or not equal</li>
-  <li><tt>uno</tt>: unordered (either nans)</li>
-  <li><tt>true</tt>: no comparison, always returns true</li>
-</ol>
-<p>The remaining two arguments must be <a href="#t_vector">vector</a> of 
-<a href="#t_floating">floating point</a> typed. They must also be identical
-types.</p>
-<h5>Semantics:</h5>
-<p>The '<tt>vfcmp</tt>' instruction compares <tt>op1</tt> and <tt>op2</tt>
-according to  the condition code given as <tt>cond</tt>. The comparison yields a 
-<a href="#t_vector">vector</a> of <a href="#t_integer">integer</a> result, with
-an identical number of elements as the values being compared, and each element
-having identical with to the width of the floating point elements. The most 
-significant bit in each element is 1 if the element-wise comparison evaluates to
-true, and is 0 otherwise.  All other bits of the result are undefined.  The
-condition codes are evaluated identically to the 
-<a href="#i_fcmp">'<tt>fcmp</tt>' instruction</a>.
-
-<h5>Example:</h5>
-<pre>
-  <result> = vfcmp oeq <2 x float> < float 4, float 0 >, < float 5, float 0 >       <i>; yields: result=<2 x i32> < i32 0, i32 -1 ></i>
-  <result> = vfcmp ult <2 x double> < double 1, double 2 >, < double 2, double 2>   <i>; yields: result=<2 x i64> < i64 -1, i64 0 ></i>
-</pre>
-</div>
-
-<!-- _______________________________________________________________________ -->
-<div class="doc_subsubsection">
   <a name="i_phi">'<tt>phi</tt>' Instruction</a>
 </div>
 

Modified: llvm/branches/release_24/lib/AsmParser/LLLexer.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_24/lib/AsmParser/LLLexer.cpp?rev=57732&r1=57731&r2=57732&view=diff

==============================================================================
--- llvm/branches/release_24/lib/AsmParser/LLLexer.cpp (original)
+++ llvm/branches/release_24/lib/AsmParser/LLLexer.cpp Fri Oct 17 16:36:29 2008
@@ -572,8 +572,6 @@
   INSTKEYWORD("xor",     BinaryOpVal, Xor, XOR);
   INSTKEYWORD("icmp",    OtherOpVal,  ICmp,  ICMP);
   INSTKEYWORD("fcmp",    OtherOpVal,  FCmp,  FCMP);
-  INSTKEYWORD("vicmp",   OtherOpVal,  VICmp, VICMP);
-  INSTKEYWORD("vfcmp",   OtherOpVal,  VFCmp, VFCMP);
 
   INSTKEYWORD("phi",         OtherOpVal, PHI, PHI_TOK);
   INSTKEYWORD("call",        OtherOpVal, Call, CALL);

Modified: llvm/branches/release_24/test/Assembler/vector-cmp.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_24/test/Assembler/vector-cmp.ll?rev=57732&r1=57731&r2=57732&view=diff

==============================================================================
--- llvm/branches/release_24/test/Assembler/vector-cmp.ll (original)
+++ llvm/branches/release_24/test/Assembler/vector-cmp.ll Fri Oct 17 16:36:29 2008
@@ -1,16 +1,4 @@
-; RUN: llvm-as < %s | llvm-dis | llvm-as | llvm-dis | grep {global.*vicmp slt}
-; PR2317
+; RUN: llvm-as < %s | llvm-dis | llvm-as | llvm-dis 
 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
 target triple = "i686-apple-darwin9.2.2"
 
-define <4 x i32> @foo(<4 x float> %a, <4 x float> %b) nounwind  {
-entry:
-	%cmp = vfcmp olt <4 x float> %a, %b		; <4 x i32> [#uses=1]
-	ret <4 x i32> %cmp
-}
-
-global <4 x i32> vicmp slt ( <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32>  <i32 1, i32 2, i32 1, i32 2> ) ;
-
- at B = external global i32;
-
-global <4 x i32> vicmp slt ( <4 x i32> <i32 ptrtoint (i32 * @B to i32), i32 1, i32 1, i32 1>, <4 x i32>  <i32 1, i32 2, i32 1, i32 2> ) ;

Modified: llvm/branches/release_24/test/CodeGen/X86/2008-07-23-VSetCC.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_24/test/CodeGen/X86/2008-07-23-VSetCC.ll?rev=57732&r1=57731&r2=57732&view=diff

==============================================================================
--- llvm/branches/release_24/test/CodeGen/X86/2008-07-23-VSetCC.ll (original)
+++ llvm/branches/release_24/test/CodeGen/X86/2008-07-23-VSetCC.ll Fri Oct 17 16:36:29 2008
@@ -1,30 +1,3 @@
 ; RUN: llvm-as < %s | llc -march=x86 -mcpu=pentium
-; PR2575
-
-define void @entry(i32 %m_task_id, i32 %start_x, i32 %end_x) nounwind  {
-	br i1 false, label %bb.nph, label %._crit_edge
-
-bb.nph:		; preds = %bb.nph, %0
-	vicmp sgt <4 x i32> zeroinitializer, < i32 -128, i32 -128, i32 -128, i32 -128 >		; <<4 x i32>>:1 [#uses=1]
-	extractelement <4 x i32> %1, i32 3		; <i32>:2 [#uses=1]
-	lshr i32 %2, 31		; <i32>:3 [#uses=1]
-	trunc i32 %3 to i1		; <i1>:4 [#uses=1]
-	select i1 %4, i32 -1, i32 0		; <i32>:5 [#uses=1]
-	insertelement <4 x i32> zeroinitializer, i32 %5, i32 3		; <<4 x i32>>:6 [#uses=1]
-	and <4 x i32> zeroinitializer, %6		; <<4 x i32>>:7 [#uses=1]
-	bitcast <4 x i32> %7 to <4 x float>		; <<4 x float>>:8 [#uses=1]
-	mul <4 x float> zeroinitializer, %8		; <<4 x float>>:9 [#uses=1]
-	bitcast <4 x float> %9 to <4 x i32>		; <<4 x i32>>:10 [#uses=1]
-	or <4 x i32> %10, zeroinitializer		; <<4 x i32>>:11 [#uses=1]
-	bitcast <4 x i32> %11 to <4 x float>		; <<4 x float>>:12 [#uses=1]
-	mul <4 x float> %12, < float 1.000000e+02, float 1.000000e+02, float 1.000000e+02, float 1.000000e+02 >		; <<4 x float>>:13 [#uses=1]
-	sub <4 x float> %13, < float 1.000000e+02, float 1.000000e+02, float 1.000000e+02, float 1.000000e+02 >		; <<4 x float>>:14 [#uses=1]
-	extractelement <4 x float> %14, i32 3		; <float>:15 [#uses=1]
-	call float @fmaxf( float 0.000000e+00, float %15 )		; <float>:16 [#uses=0]
-	br label %bb.nph
-
-._crit_edge:		; preds = %0
-	ret void
-}
 
 declare float @fmaxf(float, float)

Modified: llvm/branches/release_24/test/CodeGen/X86/vfcmp.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_24/test/CodeGen/X86/vfcmp.ll?rev=57732&r1=57731&r2=57732&view=diff

==============================================================================
--- llvm/branches/release_24/test/CodeGen/X86/vfcmp.ll (original)
+++ llvm/branches/release_24/test/CodeGen/X86/vfcmp.ll Fri Oct 17 16:36:29 2008
@@ -1,13 +1 @@
 ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2
-; PR2620
-
-define void @t(i32 %m_task_id, i32 %start_x, i32 %end_x) nounwind {
-	vfcmp olt <2 x double> zeroinitializer, zeroinitializer		; <<2 x i64>>:1 [#uses=1]
-	extractelement <2 x i64> %1, i32 1		; <i64>:2 [#uses=1]
-	lshr i64 %2, 63		; <i64>:3 [#uses=1]
-	trunc i64 %3 to i1		; <i1>:4 [#uses=1]
-	zext i1 %4 to i8		; <i8>:5 [#uses=1]
-	insertelement <2 x i8> zeroinitializer, i8 %5, i32 1		; <<2 x i8>>:6 [#uses=1]
-	store <2 x i8> %6, <2 x i8>* null
-	ret void
-}

Modified: llvm/branches/release_24/test/Transforms/ConstProp/2008-07-07-VectorCompare.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_24/test/Transforms/ConstProp/2008-07-07-VectorCompare.ll?rev=57732&r1=57731&r2=57732&view=diff

==============================================================================
--- llvm/branches/release_24/test/Transforms/ConstProp/2008-07-07-VectorCompare.ll (original)
+++ llvm/branches/release_24/test/Transforms/ConstProp/2008-07-07-VectorCompare.ll Fri Oct 17 16:36:29 2008
@@ -1,28 +1,3 @@
 ; RUN: llvm-as < %s | opt -constprop -disable-output
-; PR2529
-define <4 x i32> @test1(i32 %argc, i8** %argv) {
-entry:  
-        %foo = vicmp slt <4 x i32> undef, <i32 14, i32 undef, i32 undef, i32 undef>
-        ret <4 x i32> %foo
-}
 
-define <4 x i32> @test2(i32 %argc, i8** %argv) {
-entry:  
-        %foo = vicmp slt <4 x i32> <i32 undef, i32 undef, i32 undef, i32
-undef>, <i32 undef, i32 undef, i32 undef, i32 undef>
-        ret <4 x i32> %foo
-}
-
-
-define <4 x i32> @test3() {
-       %foo = vfcmp ueq <4 x float> <float 0.0, float 0.0, float 0.0, float
-undef>, <float 1.0, float 1.0, float 1.0, float undef>
-	ret <4 x i32> %foo
-}
-
-define <4 x i32> @test4() {
-   %foo = vfcmp ueq <4 x float> <float 0.0, float 0.0, float 0.0, float 0.0>, <float 1.0, float 1.0, float 1.0, float 0.0>
-
-	ret <4 x i32> %foo
-}
 





More information about the llvm-commits mailing list