llvm.org GIT mirror llvm / a5db869
Disable support for vicmp/vfcmp from the LLVM 2.5 release branch, like we did for LLVM 2.4. These are slated to be removed (PR3370) and we don't want to have to be backwards compatible with them in the future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_25@63788 91177308-0d34-0410-b5e6-96231b3b80d8 Tanya Lattner 11 years ago
6 changed file(s) with 4 addition(s) and 116 deletion(s). Raw diff Collapse all Expand all
149149
150150
  • 'icmp' Instruction
  • 151151
  • 'fcmp' Instruction
  • 152
  • 'vicmp' Instruction
  • 153
  • 'vfcmp' Instruction
  • 154152
  • 'phi' Instruction
  • 155153
  • 'select' Instruction
  • 156154
  • 'call' Instruction
  • 19411939
    fcmp COND ( VAL1, VAL2 )
    19421940
    Performs the fcmp operation on constants.
    19431941
    1944
    vicmp COND ( VAL1, VAL2 )
    1945
    Performs the vicmp operation on constants.
    1946
    1947
    vfcmp COND ( VAL1, VAL2 )
    1948
    Performs the vfcmp operation on constants.
    1949
    19501942
    extractelement ( VAL, IDX )
    19511943
    19521944
    Perform the extractelement
    42534245
    42544246
    42554247
    4256 'vicmp' Instruction
    4257
    4258
    4259
    Syntax:
    4260
      <result> = vicmp <cond> <ty> <op1>, <op2>   ; yields {ty}:result
    
                      
                    
    4261
    4262
    Overview:
    4263

    The 'vicmp' instruction returns an integer vector value based on

    4264 element-wise comparison of its two integer vector operands.

    4265
    Arguments:
    4266

    The 'vicmp' instruction takes three operands. The first operand is

    4267 the condition code indicating the kind of comparison to perform. It is not
    4268 a value, just a keyword. The possible condition code are:

    4269
    4270
  • eq: equal
  • 4271
  • ne: not equal
  • 4272
  • ugt: unsigned greater than
  • 4273
  • uge: unsigned greater or equal
  • 4274
  • ult: unsigned less than
  • 4275
  • ule: unsigned less or equal
  • 4276
  • sgt: signed greater than
  • 4277
  • sge: signed greater or equal
  • 4278
  • slt: signed less than
  • 4279
  • sle: signed less or equal
  • 4280
    4281

    The remaining two arguments must be vector or

    4282 integer typed. They must also be identical types.

    4283
    Semantics:
    4284

    The 'vicmp' instruction compares op1 and op2

    4285 according to the condition code given as cond. The comparison yields a
    4286 vector of integer result, of
    4287 identical type as the values being compared. The most significant bit in each
    4288 element is 1 if the element-wise comparison evaluates to true, and is 0
    4289 otherwise. All other bits of the result are undefined. The condition codes
    4290 are evaluated identically to the 'icmp'
    4291 instruction.

    4292
    4293
    Example:
    4294
    
                      
                    
    4295 <result> = vicmp eq <2 x i32> < i32 4, i32 0>, < i32 5, i32 0> ; yields: result=<2 x i32> < i32 0, i32 -1 >
    4296 <result> = vicmp ult <2 x i8 > < i8 1, i8 2>, < i8 2, i8 2 > ; yields: result=<2 x i8> < i8 -1, i8 0 >
    4297
    4298
    4299
    4300
    4301
    4302 'vfcmp' Instruction
    4303
    4304
    4305
    Syntax:
    4306
      <result> = vfcmp <cond> <ty> <op1>, <op2>
    4307
    Overview:
    4308

    The 'vfcmp' instruction returns an integer vector value based on

    4309 element-wise comparison of its two floating point vector operands. The output
    4310 elements have the same width as the input elements.

    4311
    Arguments:
    4312

    The 'vfcmp' instruction takes three operands. The first operand is

    4313 the condition code indicating the kind of comparison to perform. It is not
    4314 a value, just a keyword. The possible condition code are:

    4315
    4316
  • false: no comparison, always returns false
  • 4317
  • oeq: ordered and equal
  • 4318
  • ogt: ordered and greater than
  • 4319
  • oge: ordered and greater than or equal
  • 4320
  • olt: ordered and less than
  • 4321
  • ole: ordered and less than or equal
  • 4322
  • one: ordered and not equal
  • 4323
  • ord: ordered (no nans)
  • 4324
  • ueq: unordered or equal
  • 4325
  • ugt: unordered or greater than
  • 4326
  • uge: unordered or greater than or equal
  • 4327
  • ult: unordered or less than
  • 4328
  • ule: unordered or less than or equal
  • 4329
  • une: unordered or not equal
  • 4330
  • uno: unordered (either nans)
  • 4331
  • true: no comparison, always returns true
  • 4332
    4333

    The remaining two arguments must be vector of

    4334 floating point typed. They must also be identical
    4335 types.

    4336
    Semantics:
    4337

    The 'vfcmp' instruction compares op1 and op2

    4338 according to the condition code given as cond. The comparison yields a
    4339 vector of integer result, with
    4340 an identical number of elements as the values being compared, and each element
    4341 having identical with to the width of the floating point elements. The most
    4342 significant bit in each element is 1 if the element-wise comparison evaluates to
    4343 true, and is 0 otherwise. All other bits of the result are undefined. The
    4344 condition codes are evaluated identically to the
    4345 'fcmp' instruction.

    4346
    4347
    Example:
    4348
    
                      
                    
    4349 ; yields: result=<2 x i32> < i32 0, i32 -1 >
    4350 <result> = vfcmp oeq <2 x float> < float 4, float 0 >, < float 5, float 0 >
    4351
    4352 ; yields: result=<2 x i64> < i64 -1, i64 0 >
    4353 <result> = vfcmp ult <2 x double> < double 1, double 2 >, < double 2, double 2>
    4354
    4355
    4356
    4357
    4358
    43594248 'phi' Instruction
    43604249
    43614250
    559559 INSTKEYWORD(shl, Shl); INSTKEYWORD(lshr, LShr); INSTKEYWORD(ashr, AShr);
    560560 INSTKEYWORD(and, And); INSTKEYWORD(or, Or); INSTKEYWORD(xor, Xor);
    561561 INSTKEYWORD(icmp, ICmp); INSTKEYWORD(fcmp, FCmp);
    562 INSTKEYWORD(vicmp, VICmp); INSTKEYWORD(vfcmp, VFCmp);
    563562
    564563 INSTKEYWORD(phi, PHI);
    565564 INSTKEYWORD(call, Call);
    None ; RUN: llvm-as < %s | llvm-dis | llvm-as | llvm-dis | grep {global.*vicmp slt}
    0 ; RUN: echo disabled
    11 ; PR2317
    22 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"
    33 target triple = "i686-apple-darwin9.2.2"
    None ; RUN: llvm-as < %s | llc -march=x86 -mcpu=pentium
    0 ; RUN: echo disabled
    11 ; PR2575
    22
    33 define void @entry(i32 %m_task_id, i32 %start_x, i32 %end_x) nounwind {
    None ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2
    0 ; RUN: echo disabled
    11 ; PR2620
    22
    33 define void @t(i32 %m_task_id, i32 %start_x, i32 %end_x) nounwind {
    None ; RUN: llvm-as < %s | opt -constprop -disable-output
    0 ; RUN: echo disabled
    11 ; PR2529
    22 define <4 x i32> @test1(i32 %argc, i8** %argv) {
    33 entry: