reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
    1
    2
    3
    4
    5
    6
    7
    8
    9
   10
   11
   12
   13
   14
   15
   16
   17
   18
   19
   20
   21
   22
   23
   24
   25
   26
   27
   28
   29
   30
   31
   32
   33
   34
   35
   36
   37
   38
   39
   40
   41
   42
   43
   44
   45
   46
   47
   48
   49
   50
   51
   52
   53
   54
   55
   56
   57
   58
   59
   60
   61
   62
   63
   64
   65
   66
   67
   68
   69
   70
   71
   72
   73
   74
   75
   76
   77
   78
   79
   80
   81
   82
   83
   84
   85
   86
   87
   88
   89
   90
   91
   92
   93
   94
   95
   96
   97
   98
   99
  100
  101
  102
  103
  104
  105
  106
  107
  108
  109
  110
  111
  112
  113
  114
  115
  116
  117
  118
  119
  120
  121
  122
  123
  124
  125
  126
  127
  128
  129
  130
  131
  132
  133
  134
  135
  136
  137
  138
  139
  140
  141
  142
  143
  144
  145
  146
  147
  148
  149
  150
  151
  152
  153
  154
  155
  156
  157
  158
  159
  160
  161
  162
  163
  164
  165
  166
  167
  168
  169
  170
  171
  172
  173
  174
  175
  176
  177
  178
  179
  180
  181
  182
  183
  184
  185
  186
  187
  188
  189
  190
  191
  192
  193
  194
# RUN: llvm-mc -triple hexagon -disassemble < %s | FileCheck %s
# Hexagon Programmer's Reference Manual 11.1.3 ALU32/PRED

# Conditional add
0xf1 0xc3 0x75 0x74
# CHECK: if (p3) r17 = add(r21,#31)
0x03 0x40 0x45 0x85 0xf1 0xe3 0x75 0x74
# CHECK: p3 = r5
# CHECK-NEXT: if (p3.new) r17 = add(r21,#31)
0xf1 0xc3 0xf5 0x74
# CHECK: if (!p3) r17 = add(r21,#31)
0x03 0x40 0x45 0x85 0xf1 0xe3 0xf5 0x74
# CHECK: p3 = r5
# CHECK-NEXT: if (!p3.new) r17 = add(r21,#31)
0x71 0xdf 0x15 0xfb
# CHECK: if (p3) r17 = add(r21,r31)
0x03 0x40 0x45 0x85 0x71 0xff 0x15 0xfb
# CHECK: p3 = r5
# CHECK-NEXT: if (p3.new) r17 = add(r21,r31)
0xf1 0xdf 0x15 0xfb
# CHECK: if (!p3) r17 = add(r21,r31)
0x03 0x40 0x45 0x85 0xf1 0xff 0x15 0xfb
# CHECK: p3 = r5
# CHECK-NEXT: if (!p3.new) r17 = add(r21,r31)

# Conditional shift halfword
0x11 0xe3 0x15 0x70
# CHECK: if (p3) r17 = aslh(r21)
0x03 0x40 0x45 0x85 0x11 0xe7 0x15 0x70
# CHECK: p3 = r5
# CHECK-NEXT: if (p3.new) r17 = aslh(r21)
0x11 0xeb 0x15 0x70
# CHECK: if (!p3) r17 = aslh(r21)
0x03 0x40 0x45 0x85 0x11 0xef 0x15 0x70
# CHECK: p3 = r5
# CHECK-NEXT: if (!p3.new) r17 = aslh(r21)
0x11 0xe3 0x35 0x70
# CHECK: if (p3) r17 = asrh(r21)
0x03 0x40 0x45 0x85 0x11 0xe7 0x35 0x70
# CHECK: p3 = r5
# CHECK-NEXT: if (p3.new) r17 = asrh(r21)
0x11 0xeb 0x35 0x70
# CHECK: if (!p3) r17 = asrh(r21)
0x03 0x40 0x45 0x85 0x11 0xef 0x35 0x70
# CHECK: p3 = r5
# CHECK-NEXT: if (!p3.new) r17 = asrh(r21)

# Conditional combine
0x70 0xdf 0x15 0xfd
# CHECK: if (p3) r17:16 = combine(r21,r31)
0xf0 0xdf 0x15 0xfd
# CHECK: if (!p3) r17:16 = combine(r21,r31)
0x03 0x40 0x45 0x85 0x70 0xff 0x15 0xfd
# CHECK: p3 = r5
# CHECK-NEXT: if (p3.new) r17:16 = combine(r21,r31)
0x03 0x40 0x45 0x85 0xf0 0xff 0x15 0xfd
# CHECK: p3 = r5
# CHECK-NEXT: if (!p3.new) r17:16 = combine(r21,r31)

# Conditional logical operations
0x71 0xdf 0x15 0xf9
# CHECK: if (p3) r17 = and(r21,r31)
0xf1 0xdf 0x15 0xf9
# CHECK: if (!p3) r17 = and(r21,r31)
0x03 0x40 0x45 0x85 0x71 0xff 0x15 0xf9
# CHECK: p3 = r5
# CHECK-NEXT: if (p3.new) r17 = and(r21,r31)
0x03 0x40 0x45 0x85 0xf1 0xff 0x15 0xf9
# CHECK: p3 = r5
# CHECK-NEXT: if (!p3.new) r17 = and(r21,r31)
0x71 0xdf 0x35 0xf9
# CHECK: if (p3) r17 = or(r21,r31)
0xf1 0xdf 0x35 0xf9
# CHECK: if (!p3) r17 = or(r21,r31)
0x03 0x40 0x45 0x85 0x71 0xff 0x35 0xf9
# CHECK: p3 = r5
# CHECK-NEXT: if (p3.new) r17 = or(r21,r31)
0x03 0x40 0x45 0x85 0xf1 0xff 0x35 0xf9
# CHECK: p3 = r5
# CHECK-NEXT: if (!p3.new) r17 = or(r21,r31)
0x71 0xdf 0x75 0xf9
# CHECK: if (p3) r17 = xor(r21,r31)
0xf1 0xdf 0x75 0xf9
# CHECK: if (!p3) r17 = xor(r21,r31)
0x03 0x40 0x45 0x85 0x71 0xff 0x75 0xf9
# CHECK: p3 = r5
# CHECK-NEXT: if (p3.new) r17 = xor(r21,r31)
0x03 0x40 0x45 0x85 0xf1 0xff 0x75 0xf9
# CHECK: p3 = r5
# CHECK-NEXT: if (!p3.new) r17 = xor(r21,r31)

# Conditional subtract
0x71 0xdf 0x35 0xfb
# CHECK: if (p3) r17 = sub(r31,r21)
0xf1 0xdf 0x35 0xfb
# CHECK: if (!p3) r17 = sub(r31,r21)
0x03 0x40 0x45 0x85 0x71 0xff 0x35 0xfb
# CHECK: p3 = r5
# CHECK-NEXT: if (p3.new) r17 = sub(r31,r21)
0x03 0x40 0x45 0x85 0xf1 0xff 0x35 0xfb
# CHECK: p3 = r5
# CHECK-NEXT: if (!p3.new) r17 = sub(r31,r21)

# Conditional sign extend
0x11 0xe3 0xb5 0x70
# CHECK: if (p3) r17 = sxtb(r21)
0x11 0xeb 0xb5 0x70
# CHECK: if (!p3) r17 = sxtb(r21)
0x03 0x40 0x45 0x85 0x11 0xe7 0xb5 0x70
# CHECK: p3 = r5
# CHECK-NEXT: if (p3.new) r17 = sxtb(r21)
0x03 0x40 0x45 0x85 0x11 0xef 0xb5 0x70
# CHECK: p3 = r5
# CHECK-NEXT: if (!p3.new) r17 = sxtb(r21)
0x11 0xe3 0xf5 0x70
# CHECK: if (p3) r17 = sxth(r21)
0x11 0xeb 0xf5 0x70
# CHECK: if (!p3) r17 = sxth(r21)
0x03 0x40 0x45 0x85 0x11 0xe7 0xf5 0x70
# CHECK: p3 = r5
# CHECK-NEXT: if (p3.new) r17 = sxth(r21)
0x03 0x40 0x45 0x85 0x11 0xef 0xf5 0x70
# CHECK: p3 = r5
# CHECK-NEXT: if (!p3.new) r17 = sxth(r21)

# Conditional transfer
0xb1 0xc2 0x60 0x7e
# CHECK: if (p3) r17 = #21
0xb1 0xc2 0xe0 0x7e
# CHECK: if (!p3) r17 = #21
0x03 0x40 0x45 0x85 0xb1 0xe2 0x60 0x7e
# CHECK: p3 = r5
# CHECK-NEXT: if (p3.new) r17 = #21
0x03 0x40 0x45 0x85 0xb1 0xe2 0xe0 0x7e
# CHECK: p3 = r5
# CHECK-NEXT: if (!p3.new) r17 = #21

# Conditional zero extend
0x11 0xe3 0x95 0x70
# CHECK: if (p3) r17 = zxtb(r21)
0x11 0xeb 0x95 0x70
# CHECK: if (!p3) r17 = zxtb(r21)
0x03 0x40 0x45 0x85 0x11 0xe7 0x95 0x70
# CHECK: p3 = r5
# CHECK-NEXT: if (p3.new) r17 = zxtb(r21)
0x03 0x40 0x45 0x85 0x11 0xef 0x95 0x70
# CHECK: p3 = r5
# CHECK-NEXT: if (!p3.new) r17 = zxtb(r21)
0x11 0xe3 0xd5 0x70
# CHECK: if (p3) r17 = zxth(r21)
0x11 0xeb 0xd5 0x70
# CHECK: if (!p3) r17 = zxth(r21)
0x03 0x40 0x45 0x85 0x11 0xe7 0xd5 0x70
# CHECK: p3 = r5
# CHECK-NEXT: if (p3.new) r17 = zxth(r21)
0x03 0x40 0x45 0x85 0x11 0xef 0xd5 0x70
# CHECK: p3 = r5
# CHECK-NEXT: if (!p3.new) r17 = zxth(r21)

# Compare
0xe3 0xc3 0x15 0x75
# CHECK: p3 = cmp.eq(r21,#31)
0xf3 0xc3 0x15 0x75
# CHECK: p3 = !cmp.eq(r21,#31)
0xe3 0xc3 0x55 0x75
# CHECK: p3 = cmp.gt(r21,#31)
0xf3 0xc3 0x55 0x75
# CHECK: p3 = !cmp.gt(r21,#31)
0xe3 0xc3 0x95 0x75
# CHECK: p3 = cmp.gtu(r21,#31)
0xf3 0xc3 0x95 0x75
# CHECK: p3 = !cmp.gtu(r21,#31)
0x03 0xdf 0x15 0xf2
# CHECK: p3 = cmp.eq(r21,r31)
0x13 0xdf 0x15 0xf2
# CHECK: p3 = !cmp.eq(r21,r31)
0x03 0xdf 0x55 0xf2
# CHECK: p3 = cmp.gt(r21,r31)
0x13 0xdf 0x55 0xf2
# CHECK: p3 = !cmp.gt(r21,r31)
0x03 0xdf 0x75 0xf2
# CHECK: p3 = cmp.gtu(r21,r31)
0x13 0xdf 0x75 0xf2
# CHECK: p3 = !cmp.gtu(r21,r31)

# Compare to general register
0xf1 0xe3 0x55 0x73
# CHECK: r17 = cmp.eq(r21,#31)
0xf1 0xe3 0x75 0x73
# CHECK: r17 = !cmp.eq(r21,#31)
0x11 0xdf 0x55 0xf3
# CHECK: r17 = cmp.eq(r21,r31)
0x11 0xdf 0x75 0xf3
# CHECK: r17 = !cmp.eq(r21,r31)