435 lines · plain
1# RUN: llvm-mc -triple=hexagon -filetype=obj -o - %s | llvm-objdump -d - | FileCheck %s2# Hexagon Programmer's Reference Manual 11.8 ST3 4# Store doubleword5# CHECK: 9e f5 d1 3b6memd(r17 + r21<<#3) = r31:307# CHECK: 28 d4 c0 488memd(gp+#320) = r21:209# CHECK: 02 40 00 0010# CHECK-NEXT: 28 d4 c0 4811memd(##168) = r21:2012memd(r17+#168) = r21:2013# CHECK: 02 f4 d1 a914memd(r17 ++ I:circ(m1)) = r21:2015# CHECK: 28 f4 d1 a916memd(r17 ++ #40:circ(m1)) = r21:2017# CHECK: 28 d4 d1 ab18memd(r17++#40) = r21:2019# CHECK: 00 40 00 0020# CHECK-NEXT: d5 fe d1 ad21memd(r17<<#3 + ##21) = r31:3022memd(r17++m1) = r21:2023# CHECK: 00 f4 d1 af24memd(r17 ++ m1:brev) = r21:2025 26# Store doubleword conditionally27# CHECK: fe f5 d1 3428if (p3) memd(r17+r21<<#3) = r31:3029# CHECK: fe f5 d1 3530if (!p3) memd(r17+r21<<#3) = r31:3031# CHECK: 03 40 45 8532# CHECK-NEXT: fe f5 d1 3633{ p3 = r534 if (p3.new) memd(r17+r21<<#3) = r31:30 }35# CHECK: 03 40 45 8536# CHECK-NEXT: fe f5 d1 3737{ p3 = r538 if (!p3.new) memd(r17+r21<<#3) = r31:30 }39# CHECK: ab de d1 4040if (p3) memd(r17+#168) = r31:3041# CHECK: ab de d1 4442if (!p3) memd(r17+#168) = r31:3043# CHECK: 03 40 45 8544# CHECK-NEXT: ab de d1 4245{ p3 = r546 if (p3.new) memd(r17+#168) = r31:30 }47# CHECK: 03 40 45 8548# CHECK-NEXT: ab de d1 4649{ p3 = r550 if (!p3.new) memd(r17+#168) = r31:30 }51# CHECK: 2b f4 d1 ab52if (p3) memd(r17++#40) = r21:2053# CHECK: 2f f4 d1 ab54if (!p3) memd(r17++#40) = r21:2055# CHECK: 03 40 45 8556# CHECK-NEXT: ab f4 d1 ab57{ p3 = r558 if (p3.new) memd(r17++#40) = r21:20 }59# CHECK: 03 40 45 8560# CHECK-NEXT: af f4 d1 ab61{ p3 = r562 if (!p3.new) memd(r17++#40) = r21:20 }63# CHECK: 02 40 00 0064# CHECK-NEXT: c3 d4 c2 af65if (p3) memd(##168) = r21:2066# CHECK: 02 40 00 0067# CHECK-NEXT: c7 d4 c2 af68if (!p3) memd(##168) = r21:2069# CHECK: 03 40 45 8570# CHECK-NEXT: 02 40 00 0071# CHECK-NEXT: c3 f4 c2 af72{ p3 = r573 if (p3.new) memd(##168) = r21:20 }74# CHECK: 03 40 45 8575# CHECK-NEXT: 02 40 00 0076# CHECK-NEXT: c7 f4 c2 af77{ p3 = r578 if (!p3.new) memd(##168) = r21:20 }79 80# Store byte81# CHECK: 9f f5 11 3b82memb(r17 + r21<<#3) = r3183# CHECK: 9f ca 11 3c84memb(r17+#21)=#3185# CHECK: 15 d5 00 4886memb(gp+#21) = r2187# CHECK: 00 40 00 0088# CHECK-NEXT: 15 d5 00 4889memb(##21) = r2190# CHECK: 15 d5 11 a191memb(r17+#21) = r2192# CHECK: 02 f5 11 a993memb(r17 ++ I:circ(m1)) = r2194# CHECK: 28 f5 11 a995memb(r17 ++ #5:circ(m1)) = r2196# CHECK: 28 d5 11 ab97memb(r17++#5) = r2198# CHECK: 00 40 00 0099# CHECK-NEXT: d5 ff 11 ad100memb(r17<<#3 + ##21) = r31101# CHECK: 00 f5 11 ad102memb(r17++m1) = r21103# CHECK: 00 f5 11 af104memb(r17 ++ m1:brev) = r21105 106# Store byte conditionally107# CHECK: ff f5 11 34108if (p3) memb(r17+r21<<#3) = r31109# CHECK: ff f5 11 35110if (!p3) memb(r17+r21<<#3) = r31111# CHECK: 03 40 45 85112# CHECK-NEXT: ff f5 11 36113{ p3 = r5114 if (p3.new) memb(r17+r21<<#3) = r31 }115# CHECK: 03 40 45 85116# CHECK-NEXT: ff f5 11 37117{ p3 = r5118 if (!p3.new) memb(r17+r21<<#3) = r31 }119# CHECK: ff ca 11 38120if (p3) memb(r17+#21)=#31121# CHECK: ff ca 91 38122if (!p3) memb(r17+#21)=#31123# CHECK: 03 40 45 85124# CHECK-NEXT: ff ca 11 39125{ p3 = r5126 if (p3.new) memb(r17+#21)=#31 }127# CHECK: 03 40 45 85128# CHECK-NEXT: ff ca 91 39129{ p3 = r5130 if (!p3.new) memb(r17+#21)=#31 }131# CHECK: ab df 11 40132if (p3) memb(r17+#21) = r31133# CHECK: ab df 11 44134if (!p3) memb(r17+#21) = r31135# CHECK: 03 40 45 85136# CHECK-NEXT: ab df 11 42137{ p3 = r5138 if (p3.new) memb(r17+#21) = r31 }139# CHECK: 03 40 45 85140# CHECK-NEXT: ab df 11 46141{ p3 = r5142 if (!p3.new) memb(r17+#21) = r31 }143# CHECK: 2b f5 11 ab144if (p3) memb(r17++#5) = r21145# CHECK: 2f f5 11 ab146if (!p3) memb(r17++#5) = r21147# CHECK: 03 40 45 85148# CHECK-NEXT: ab f5 11 ab149{ p3 = r5150 if (p3.new) memb(r17++#5) = r21 }151# CHECK: 03 40 45 85152# CHECK-NEXT: af f5 11 ab153{ p3 = r5154 if (!p3.new) memb(r17++#5) = r21 }155# CHECK: 00 40 00 00156# CHECK-NEXT: ab d5 01 af157if (p3) memb(##21) = r21158# CHECK: 00 40 00 00159# CHECK-NEXT: af d5 01 af160if (!p3) memb(##21) = r21161# CHECK: 03 40 45 85162# CHECK-NEXT: 00 40 00 00163# CHECK-NEXT: ab f5 01 af164{ p3 = r5165 if (p3.new) memb(##21) = r21 }166# CHECK: 03 40 45 85167# CHECK-NEXT: 00 40 00 00168# CHECK-NEXT: af f5 01 af169{ p3 = r5170 if (!p3.new) memb(##21) = r21 }171 172# Store halfword173# CHECK: 9f f5 51 3b174memh(r17 + r21<<#3) = r31175# CHECK: 9f f5 71 3b176memh(r17 + r21<<#3) = r31.h177# CHECK: 95 cf 31 3c178memh(r17+#62)=#21179# CHECK: 00 40 00 00180# CHECK-NEXT: 2a d5 40 48181memh(##42) = r21182# CHECK: 00 40 00 00183# CHECK-NEXT: 2a d5 60 48184memh(##42) = r21.h185# CHECK: 2a d5 40 48186memh(gp+#84) = r21187# CHECK: 2a d5 60 48188memh(gp+#84) = r21.h189# CHECK: 15 df 51 a1190memh(r17+#42) = r31191# CHECK: 15 df 71 a1192memh(r17+#42) = r31.h193# CHECK: 02 f5 51 a9194memh(r17 ++ I:circ(m1)) = r21195# CHECK: 28 f5 51 a9196memh(r17 ++ #10:circ(m1)) = r21197# CHECK: 02 f5 71 a9198memh(r17 ++ I:circ(m1)) = r21.h199# CHECK: 28 f5 71 a9200memh(r17 ++ #10:circ(m1)) = r21.h201# CHECK: 28 d5 51 ab202memh(r17++#10) = r21203# CHECK: 00 40 00 00204# CHECK-NEXT: d5 ff 51 ad205memh(r17<<#3 + ##21) = r31206# CHECK: 28 d5 71 ab207memh(r17++#10) = r21.h208# CHECK: 00 40 00 00209# CHECK-NEXT: d5 ff 71 ad210memh(r17<<#3 + ##21) = r31.h211# CHECK: 00 f5 51 ad212memh(r17++m1) = r21213# CHECK: 00 f5 71 ad214memh(r17++m1) = r21.h215# CHECK: 00 f5 51 af216memh(r17 ++ m1:brev) = r21217# CHECK: 00 f5 71 af218memh(r17 ++ m1:brev) = r21.h219 220# Store halfword conditionally221# CHECK: ff f5 51 34222if (p3) memh(r17+r21<<#3) = r31223# CHECK: ff f5 71 34224if (p3) memh(r17+r21<<#3) = r31.h225# CHECK: ff f5 51 35226if (!p3) memh(r17+r21<<#3) = r31227# CHECK: ff f5 71 35228if (!p3) memh(r17+r21<<#3) = r31.h229# CHECK: 03 40 45 85230# CHECK-NEXT: ff f5 51 36231{ p3 = r5232 if (p3.new) memh(r17+r21<<#3) = r31 }233# CHECK: 03 40 45 85234# CHECK-NEXT: ff f5 71 36235{ p3 = r5236 if (p3.new) memh(r17+r21<<#3) = r31.h }237# CHECK: 03 40 45 85238# CHECK-NEXT: ff f5 51 37239{ p3 = r5240 if (!p3.new) memh(r17+r21<<#3) = r31 }241# CHECK: 03 40 45 85242# CHECK-NEXT: ff f5 71 37243{ p3 = r5244 if (!p3.new) memh(r17+r21<<#3) = r31.h }245# CHECK: f5 cf 31 38246if (p3) memh(r17+#62)=#21247# CHECK: f5 cf b1 38248if (!p3) memh(r17+#62)=#21249# CHECK: 03 40 45 85250# CHECK-NEXT: f5 cf 31 39251{ p3 = r5252 if (p3.new) memh(r17+#62)=#21 }253# CHECK: 03 40 45 85254# CHECK-NEXT: f5 cf b1 39255{ p3 = r5256 if (!p3.new) memh(r17+#62)=#21 }257# CHECK: fb d5 51 40258if (p3) memh(r17+#62) = r21259# CHECK: fb d5 71 40260if (p3) memh(r17+#62) = r21.h261# CHECK: fb d5 51 44262if (!p3) memh(r17+#62) = r21263# CHECK: fb d5 71 44264if (!p3) memh(r17+#62) = r21.h265# CHECK: 03 40 45 85266# CHECK-NEXT: fb d5 51 42267{ p3 = r5268 if (p3.new) memh(r17+#62) = r21 }269# CHECK: 03 40 45 85270# CHECK-NEXT: fb d5 71 42271{ p3 = r5272 if (p3.new) memh(r17+#62) = r21.h }273# CHECK: 03 40 45 85274# CHECK-NEXT: fb d5 51 46275{ p3 = r5276 if (!p3.new) memh(r17+#62) = r21 }277# CHECK: 03 40 45 85278# CHECK-NEXT: fb d5 71 46279{ p3 = r5280 if (!p3.new) memh(r17+#62) = r21.h }281# CHECK: 2b f5 51 ab282if (p3) memh(r17++#10) = r21283# CHECK: 2f f5 51 ab284if (!p3) memh(r17++#10) = r21285# CHECK: 03 40 45 85286# CHECK-NEXT: ab f5 51 ab287{ p3 = r5288 if (p3.new) memh(r17++#10) = r21 }289# CHECK: 03 40 45 85290# CHECK-NEXT: af f5 51 ab291{ p3 = r5292 if (!p3.new) memh(r17++#10) = r21 }293# CHECK: 2b f5 71 ab294if (p3) memh(r17++#10) = r21.h295# CHECK: 2f f5 71 ab296if (!p3) memh(r17++#10) = r21.h297# CHECK: 03 40 45 85298# CHECK-NEXT: ab f5 71 ab299{ p3 = r5300 if (p3.new) memh(r17++#10) = r21.h }301# CHECK: 03 40 45 85302# CHECK-NEXT: af f5 71 ab303{ p3 = r5304 if (!p3.new) memh(r17++#10) = r21.h }305# CHECK: 00 40 00 00306# CHECK-NEXT: d3 d5 42 af307if (p3) memh(##42) = r21308# CHECK: 00 40 00 00309# CHECK-NEXT: d3 d5 62 af310if (p3) memh(##42) = r21.h311# CHECK: 00 40 00 00312# CHECK-NEXT: d7 d5 42 af313if (!p3) memh(##42) = r21314# CHECK: 00 40 00 00315# CHECK-NEXT: d7 d5 62 af316if (!p3) memh(##42) = r21.h317# CHECK: 03 40 45 85318# CHECK-NEXT: 00 40 00 00319# CHECK-NEXT: d3 f5 42 af320{ p3 = r5321 if (p3.new) memh(##42) = r21 }322# CHECK: 03 40 45 85323# CHECK-NEXT: 00 40 00 00324# CHECK-NEXT: d3 f5 62 af325{ p3 = r5326 if (p3.new) memh(##42) = r21.h }327# CHECK: 03 40 45 85328# CHECK-NEXT: 00 40 00 00329# CHECK-NEXT: d7 f5 42 af330{ p3 = r5331 if (!p3.new) memh(##42) = r21 }332# CHECK: 03 40 45 85333# CHECK-NEXT: 00 40 00 00334# CHECK-NEXT: d7 f5 62 af335{ p3 = r5336 if (!p3.new) memh(##42) = r21.h }337 338# Store word339# CHECK: 9f f5 91 3b340memw(r17 + r21<<#3) = r31341# CHECK: 9f ca 51 3c342memw(r17+#84)=#31343# CHECK: 15 df 80 48344memw(gp+#84) = r31345# CHECK: 01 40 00 00346# CHECK-NEXT: 14 d5 80 48347memw(##84) = r21348# CHECK: 9f ca 51 3c349memw(r17+#84)=#31350# CHECK: 15 df 91 a1351memw(r17+#84) = r31352# CHECK: 02 f5 91 a9353memw(r17 ++ I:circ(m1)) = r21354# CHECK: 28 f5 91 a9355memw(r17 ++ #20:circ(m1)) = r21356# CHECK: 28 d5 91 ab357memw(r17++#20) = r21358# CHECK: 00 40 00 00359# CHECK-NEXT: d5 ff 91 ad360memw(r17<<#3 + ##21) = r31361# CHECK: 00 f5 91 ad362memw(r17++m1) = r21363# CHECK: 00 f5 91 af364memw(r17 ++ m1:brev) = r21365 366# Store word conditionally367# CHECK: ff f5 91 34368if (p3) memw(r17+r21<<#3) = r31369# CHECK: ff f5 91 35370if (!p3) memw(r17+r21<<#3) = r31371# CHECK: 03 40 45 85372# CHECK-NEXT: ff f5 91 36373{ p3 = r5374 if (p3.new) memw(r17+r21<<#3) = r31 }375# CHECK: 03 40 45 85376# CHECK-NEXT: ff f5 91 37377{ p3 = r5378 if (!p3.new) memw(r17+r21<<#3) = r31 }379# CHECK: ff ca 51 38380if (p3) memw(r17+#84)=#31381# CHECK: ff ca d1 38382if (!p3) memw(r17+#84)=#31383# CHECK: 03 40 45 85384# CHECK-NEXT: ff ca 51 39385{ p3 = r5386 if (p3.new) memw(r17+#84)=#31 }387# CHECK: 03 40 45 85388# CHECK-NEXT: ff ca d1 39389{ p3 = r5390 if (!p3.new) memw(r17+#84)=#31 }391# CHECK: ab df 91 40392if (p3) memw(r17+#84) = r31393# CHECK: ab df 91 44394if (!p3) memw(r17+#84) = r31395# CHECK: 03 40 45 85396# CHECK-NEXT: ab df 91 42397{ p3 = r5398 if (p3.new) memw(r17+#84) = r31 }399# CHECK: 03 40 45 85400# CHECK-NEXT: ab df 91 46401{ p3 = r5402 if (!p3.new) memw(r17+#84) = r31 }403# CHECK: 2b f5 91 ab404if (p3) memw(r17++#20) = r21405# CHECK: 2f f5 91 ab406if (!p3) memw(r17++#20) = r21407# CHECK: 03 40 45 85408# CHECK-NEXT: af f5 91 ab409{ p3 = r5410 if (!p3.new) memw(r17++#20) = r21 }411# CHECK: 03 40 45 85412# CHECK-NEXT: ab f5 91 ab413{ p3 = r5414 if (p3.new) memw(r17++#20) = r21 }415# CHECK: 01 40 00 00416# CHECK-NEXT: a3 d5 81 af417if (p3) memw(##84) = r21418# CHECK: 01 40 00 00419# CHECK-NEXT: a7 d5 81 af420if (!p3) memw(##84) = r21421# CHECK: 03 40 45 85422# CHECK-NEXT: 01 40 00 00423# CHECK-NEXT: a3 f5 81 af424{ p3 = r5425 if (p3.new) memw(##84) = r21 }426# CHECK: 03 40 45 85427# CHECK-NEXT: 01 40 00 00428# CHECK-NEXT: a7 f5 81 af429{ p3 = r5430 if (!p3.new) memw(##84) = r21 }431 432# Allocate stack frame433# CHECK: 1f c0 9d a0434allocframe(#248)435