Home | History | Annotate | Download | only in AMDGPU
      1 // RUN: llvm-mc -arch=amdgcn -show-encoding %s | FileCheck %s --check-prefix=SICI
      2 // RUN: llvm-mc -arch=amdgcn -mcpu=SI -show-encoding %s | FileCheck %s --check-prefix=SICI
      3 // RUN: llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s | FileCheck %s --check-prefix=VI
      4 
      5 //===----------------------------------------------------------------------===//
      6 // Generic Checks
      7 //===----------------------------------------------------------------------===//
      8 
      9 // src0 sgpr
     10 v_cmp_lt_f32 vcc, s2, v4
     11 // SICI: v_cmp_lt_f32_e32 vcc, s2, v4 ; encoding: [0x02,0x08,0x02,0x7c]
     12 // VI:   v_cmp_lt_f32_e32 vcc, s2, v4 ; encoding: [0x02,0x08,0x82,0x7c]
     13 
     14 // src0 inline immediate
     15 v_cmp_lt_f32 vcc, 0, v4
     16 // SICI: v_cmp_lt_f32_e32 vcc, 0, v4 ; encoding: [0x80,0x08,0x02,0x7c]
     17 // VI:   v_cmp_lt_f32_e32 vcc, 0, v4 ; encoding: [0x80,0x08,0x82,0x7c]
     18 
     19 // src0 literal
     20 v_cmp_lt_f32 vcc, 10.0, v4
     21 // SICI: v_cmp_lt_f32_e32 vcc, 0x41200000, v4 ; encoding: [0xff,0x08,0x02,0x7c,0x00,0x00,0x20,0x41]
     22 // VI:   v_cmp_lt_f32_e32 vcc, 0x41200000, v4 ; encoding: [0xff,0x08,0x82,0x7c,0x00,0x00,0x20,0x41]
     23 
     24 // src0, src1 max vgpr
     25 v_cmp_lt_f32 vcc, v255, v255
     26 // SICI: v_cmp_lt_f32_e32 vcc, v255, v255 ; encoding: [0xff,0xff,0x03,0x7c]
     27 // VI:   v_cmp_lt_f32_e32 vcc, v255, v255 ; encoding: [0xff,0xff,0x83,0x7c]
     28 
     29 // force 32-bit encoding
     30 v_cmp_lt_f32_e32 vcc, v2, v4
     31 // SICI: v_cmp_lt_f32_e32 vcc, v2, v4 ; encoding: [0x02,0x09,0x02,0x7c]
     32 // VI:   v_cmp_lt_f32_e32 vcc, v2, v4 ; encoding: [0x02,0x09,0x82,0x7c]
     33 
     34 
     35 //===----------------------------------------------------------------------===//
     36 // Instructions
     37 //===----------------------------------------------------------------------===//
     38 
     39 v_cmp_f_f32 vcc, v2, v4
     40 // SICI: v_cmp_f_f32_e32 vcc, v2, v4 ; encoding: [0x02,0x09,0x00,0x7c]
     41 // VI:   v_cmp_f_f32_e32 vcc, v2, v4 ; encoding: [0x02,0x09,0x80,0x7c]
     42 
     43 v_cmp_lt_f32 vcc, v2, v4
     44 // SICI: v_cmp_lt_f32_e32 vcc, v2, v4 ; encoding: [0x02,0x09,0x02,0x7c]
     45 // VI:   v_cmp_lt_f32_e32 vcc, v2, v4 ; encoding: [0x02,0x09,0x82,0x7c]
     46 
     47 // TODO: Add tests for the rest of v_cmp_*_f32
     48 // TODO: Add tests for v_cmpx_*_f32
     49 
     50 v_cmp_f_f64 vcc, v[2:3], v[4:5]
     51 // SICI: v_cmp_f_f64_e32 vcc, v[2:3], v[4:5] ; encoding: [0x02,0x09,0x40,0x7c]
     52 // VI:   v_cmp_f_f64_e32 vcc, v[2:3], v[4:5] ; encoding: [0x02,0x09,0xc0,0x7c]
     53 
     54 // TODO: Add tests for the rest of v_cmp_*_f64
     55 // TODO: Add tests for the rest of the floating-point comparision instructions.
     56 
     57 v_cmp_f_i32 vcc, v2, v4
     58 // SICI: v_cmp_f_i32_e32 vcc, v2, v4 ; encoding: [0x02,0x09,0x00,0x7d]
     59 // VI:   v_cmp_f_i32_e32 vcc, v2, v4 ; encoding: [0x02,0x09,0x80,0x7d]
     60 
     61 // TODO: Add test for the rest of v_cmp_*_i32
     62 
     63 v_cmp_f_i64 vcc, v[2:3], v[4:5]
     64 // SICI: v_cmp_f_i64_e32 vcc, v[2:3], v[4:5] ; encoding: [0x02,0x09,0x40,0x7d]
     65 // VI:   v_cmp_f_i64_e32 vcc, v[2:3], v[4:5] ; encoding: [0x02,0x09,0xc0,0x7d]
     66 
     67 // TODO: Add tests for the rest of the instructions.
     68