brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.9 KiB · e5fded0 Raw
223 lines · plain
1# RUN: llvm-mc -triple hexagon -filetype=obj -o - %s | llvm-objdump -d - | FileCheck %s2# Hexagon Programmer's Reference Manual 11.1.3 ALU32/PRED3 4# Conditional add5# CHECK: f1 c3 75 746if (p3) r17 = add(r21, #31)7# CHECK: 03 40 45 858# CHECK-NEXT: f1 e3 75 749{ p3 = r510  if (p3.new) r17 = add(r21, #31) }11# CHECK: f1 c3 f5 7412if (!p3) r17 = add(r21, #31)13# CHECK: 03 40 45 8514# CHECK-NEXT: f1 e3 f5 7415{ p3 = r516  if (!p3.new) r17 = add(r21, #31) }17# CHECK: 71 df 15 fb18if (p3) r17 = add(r21, r31)19# CHECK: 03 40 45 8520# CHECK-NEXT: 71 ff 15 fb21{ p3 = r522  if (p3.new) r17 = add(r21, r31) }23# CHECK: f1 df 15 fb24if (!p3) r17 = add(r21, r31)25# CHECK: 03 40 45 8526# CHECK-NEXT: f1 ff 15 fb27{ p3 = r528  if (!p3.new) r17 = add(r21, r31) }29 30# Conditional shift halfword31# CHECK: 11 e3 15 7032if (p3) r17 = aslh(r21)33# CHECK: 03 40 45 8534# CHECK-NEXT: 11 e7 15 7035{ p3 = r536  if (p3.new) r17 = aslh(r21) }37# CHECK: 11 eb 15 7038if (!p3) r17 = aslh(r21)39# CHECK: 03 40 45 8540# CHECK-NEXT: 11 ef 15 7041{ p3 = r542  if (!p3.new) r17 = aslh(r21) }43# CHECK: 11 e3 35 7044if (p3) r17 = asrh(r21)45# CHECK: 03 40 45 8546# CHECK-NEXT: 11 e7 35 7047{ p3 = r548  if (p3.new) r17 = asrh(r21) }49# CHECK: 11 eb 35 7050if (!p3) r17 = asrh(r21)51# CHECK: 03 40 45 8552# CHECK-NEXT: 11 ef 35 7053{ p3 = r554  if (!p3.new) r17 = asrh(r21) }55 56# Conditional combine57# CHECK: 70 df 15 fd58if (p3) r17:16 = combine(r21, r31)59# CHECK: f0 df 15 fd60if (!p3) r17:16 = combine(r21, r31)61# CHECK: 03 40 45 8562# CHECK-NEXT: 70 ff 15 fd63{ p3 = r564  if (p3.new) r17:16 = combine(r21, r31) }65# CHECK: 03 40 45 8566# CHECK-NEXT: f0 ff 15 fd67{ p3 = r568  if (!p3.new) r17:16 = combine(r21, r31) }69 70# Conditional logical operations71# CHECK: 71 df 15 f972if (p3) r17 = and(r21, r31)73# CHECK: f1 df 15 f974if (!p3) r17 = and(r21, r31)75# CHECK: 03 40 45 8576# CHECK-NEXT: 71 ff 15 f977{ p3 = r578  if (p3.new) r17 = and(r21, r31) }79# CHECK: 03 40 45 8580# CHECK-NEXT: f1 ff 15 f981{ p3 = r582  if (!p3.new) r17 = and(r21, r31) }83# CHECK: 71 df 35 f984if (p3) r17 = or(r21, r31)85# CHECK: f1 df 35 f986if (!p3) r17 = or(r21, r31)87# CHECK: 03 40 45 8588# CHECK-NEXT: 71 ff 35 f989{ p3 = r590  if (p3.new) r17 = or(r21, r31) }91# CHECK: 03 40 45 8592# CHECK-NEXT: f1 ff 35 f993{ p3 = r594  if (!p3.new) r17 = or(r21, r31) }95# CHECK: 71 df 75 f996if (p3) r17 = xor(r21, r31)97# CHECK: f1 df 75 f998if (!p3) r17 = xor(r21, r31)99# CHECK: 03 40 45 85100# CHECK-NEXT: 71 ff 75 f9101{ p3 = r5102  if (p3.new) r17 = xor(r21, r31) }103# CHECK: 03 40 45 85104# CHECK-NEXT: f1 ff 75 f9105{ p3 = r5106  if (!p3.new) r17 = xor(r21, r31) }107 108# Conditional subtract109# CHECK: 71 df 35 fb110if (p3) r17 = sub(r31, r21)111# CHECK: f1 df 35 fb112if (!p3) r17 = sub(r31, r21)113# CHECK: 03 40 45 85114# CHECK-NEXT: 71 ff 35 fb115{ p3 = r5116  if (p3.new) r17 = sub(r31, r21) }117# CHECK: 03 40 45 85118# CHECK-NEXT: f1 ff 35 fb119{ p3 = r5120  if (!p3.new) r17 = sub(r31, r21) }121 122# Conditional sign extend123# CHECK: 11 e3 b5 70124if (p3) r17 = sxtb(r21)125# CHECK: 11 eb b5 70126if (!p3) r17 = sxtb(r21)127# CHECK: 03 40 45 85128# CHECK-NEXT: 11 e7 b5 70129{ p3 = r5130  if (p3.new) r17 = sxtb(r21) }131# CHECK: 03 40 45 85132# CHECK-NEXT: 11 ef b5 70133{ p3 = r5134  if (!p3.new) r17 = sxtb(r21) }135# CHECK: 11 e3 f5 70136if (p3) r17 = sxth(r21)137# CHECK: 11 eb f5 70138if (!p3) r17 = sxth(r21)139# CHECK: 03 40 45 85140# CHECK-NEXT: 11 e7 f5 70141{ p3 = r5142  if (p3.new) r17 = sxth(r21) }143# CHECK: 03 40 45 85144# CHECK-NEXT: 11 ef f5 70145{ p3 = r5146  if (!p3.new) r17 = sxth(r21) }147 148# Conditional transfer149# CHECK: b1 c2 60 7e150if (p3) r17 = #21151# CHECK: b1 c2 e0 7e152if (!p3) r17 = #21153# CHECK: 03 40 45 85154# CHECK-NEXT: b1 e2 60 7e155{ p3 = r5156  if (p3.new) r17 = #21 }157# CHECK: 03 40 45 85158# CHECK-NEXT: b1 e2 e0 7e159{ p3 = r5160  if (!p3.new) r17 = #21 }161 162# Conditional zero extend163# CHECK: 11 e3 95 70164if (p3) r17 = zxtb(r21)165# CHECK: 11 eb 95 70166if (!p3) r17 = zxtb(r21)167# CHECK: 03 40 45 85168# CHECK-NEXT: 11 e7 95 70169{ p3 = r5170  if (p3.new) r17 = zxtb(r21) }171# CHECK: 03 40 45 85172# CHECK-NEXT: 11 ef 95 70173{ p3 = r5174  if (!p3.new) r17 = zxtb(r21) }175# CHECK: 11 e3 d5 70176if (p3) r17 = zxth(r21)177# CHECK: 11 eb d5 70178if (!p3) r17 = zxth(r21)179# CHECK: 03 40 45 85180# CHECK-NEXT: 11 e7 d5 70181{ p3 = r5182  if (p3.new) r17 = zxth(r21) }183# CHECK: 03 40 45 85184# CHECK-NEXT: 11 ef d5 70185{ p3 = r5186  if (!p3.new) r17 = zxth(r21) }187 188# Compare189# CHECK: e3 c3 15 75190p3 = cmp.eq(r21, #31)191# CHECK: f3 c3 15 75192p3 = !cmp.eq(r21, #31)193# CHECK: e3 c3 55 75194p3 = cmp.gt(r21, #31)195# CHECK: f3 c3 55 75196p3 = !cmp.gt(r21, #31)197# CHECK: e3 c3 95 75198p3 = cmp.gtu(r21, #31)199# CHECK: f3 c3 95 75200p3 = !cmp.gtu(r21, #31)201# CHECK: 03 df 15 f2202p3 = cmp.eq(r21, r31)203# CHECK: 13 df 15 f2204p3 = !cmp.eq(r21, r31)205# CHECK: 03 df 55 f2206p3 = cmp.gt(r21, r31)207# CHECK: 13 df 55 f2208p3 = !cmp.gt(r21, r31)209# CHECK: 03 df 75 f2210p3 = cmp.gtu(r21, r31)211# CHECK: 13 df 75 f2212p3 = !cmp.gtu(r21, r31)213 214# Compare to general register215# CHECK: f1 e3 55 73216r17 = cmp.eq(r21, #31)217# CHECK: f1 e3 75 73218r17 = !cmp.eq(r21, #31)219# CHECK: 11 df 55 f3220r17 = cmp.eq(r21, r31)221# CHECK: 11 df 75 f3222r17 = !cmp.eq(r21, r31)223