brintos

brintos / llvm-project-archived public Read only

0
0
Text · 14.0 KiB · 28c7485 Raw
481 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple aarch64 -O0 -run-pass=aarch64-prelegalizer-combiner -global-isel -verify-machineinstrs %s -o - | FileCheck %s3---4name:            test_anyext5body: |6  bb.0:7    liveins: $x08    ; CHECK-LABEL: name: test_anyext9    ; CHECK: liveins: $x010    ; CHECK-NEXT: {{  $}}11    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x012    ; CHECK-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p0) :: (load (s8))13    ; CHECK-NEXT: $w0 = COPY [[LOAD]](s32)14    %0:_(p0) = COPY $x015    %1:_(s8) = G_LOAD %0 :: (load (s8))16    %2:_(s32) = G_ANYEXT %117    $w0 = COPY %218...19 20---21name:            test_anyext_with_copy22body: |23  bb.0:24    liveins: $x025    ; CHECK-LABEL: name: test_anyext_with_copy26    ; CHECK: liveins: $x027    ; CHECK-NEXT: {{  $}}28    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x029    ; CHECK-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p0) :: (load (s8))30    ; CHECK-NEXT: $w0 = COPY [[LOAD]](s32)31    %0:_(p0) = COPY $x032    %1:_(s8) = G_LOAD %0 :: (load (s8))33    %2:_(s8) = COPY %134    %3:_(s32) = G_ANYEXT %135    $w0 = COPY %336...37 38---39name:            test_signext40body: |41  bb.0:42    liveins: $x043    ; CHECK-LABEL: name: test_signext44    ; CHECK: liveins: $x045    ; CHECK-NEXT: {{  $}}46    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x047    ; CHECK-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p0) :: (load (s8))48    ; CHECK-NEXT: $w0 = COPY [[SEXTLOAD]](s32)49    %0:_(p0) = COPY $x050    %1:_(s8) = G_LOAD %0 :: (load (s8))51    %2:_(s32) = G_SEXT %152    $w0 = COPY %253...54 55---56name:            test_zeroext57body: |58  bb.0:59    liveins: $x060    ; CHECK-LABEL: name: test_zeroext61    ; CHECK: liveins: $x062    ; CHECK-NEXT: {{  $}}63    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x064    ; CHECK-NEXT: [[ZEXTLOAD:%[0-9]+]]:_(s32) = G_ZEXTLOAD [[COPY]](p0) :: (load (s8))65    ; CHECK-NEXT: $w0 = COPY [[ZEXTLOAD]](s32)66    %0:_(p0) = COPY $x067    %1:_(s8) = G_LOAD %0 :: (load (s8))68    %2:_(s32) = G_ZEXT %169    $w0 = COPY %270...71 72---73name:            test_2anyext74body: |75  bb.0:76    liveins: $x077    ; CHECK-LABEL: name: test_2anyext78    ; CHECK: liveins: $x079    ; CHECK-NEXT: {{  $}}80    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x081    ; CHECK-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p0) :: (load (s8))82    ; CHECK-NEXT: $w0 = COPY [[LOAD]](s32)83    ; CHECK-NEXT: $w1 = COPY [[LOAD]](s32)84    %0:_(p0) = COPY $x085    %1:_(s8) = G_LOAD %0 :: (load (s8))86    %2:_(s32) = G_ANYEXT %187    %3:_(s32) = G_ANYEXT %188    $w0 = COPY %289    $w1 = COPY %390...91 92---93name:            test_1anyext_1signext94body: |95  bb.0:96    liveins: $x097    ; CHECK-LABEL: name: test_1anyext_1signext98    ; CHECK: liveins: $x099    ; CHECK-NEXT: {{  $}}100    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x0101    ; CHECK-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p0) :: (load (s8))102    ; CHECK-NEXT: $w0 = COPY [[SEXTLOAD]](s32)103    ; CHECK-NEXT: $w1 = COPY [[SEXTLOAD]](s32)104    %0:_(p0) = COPY $x0105    %1:_(s8) = G_LOAD %0 :: (load (s8))106    %2:_(s32) = G_ANYEXT %1107    %3:_(s32) = G_SEXT %1108    $w0 = COPY %2109    $w1 = COPY %3110...111 112---113name:            test_1xor_1signext114body: |115  bb.0:116    liveins: $x0117    ; CHECK-LABEL: name: test_1xor_1signext118    ; CHECK: liveins: $x0119    ; CHECK-NEXT: {{  $}}120    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x0121    ; CHECK-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p0) :: (load (s8))122    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s8) = G_TRUNC [[SEXTLOAD]](s32)123    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s8) = G_CONSTANT i8 -1124    ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s8) = G_XOR [[TRUNC]], [[C]]125    ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[XOR]](s8)126    ; CHECK-NEXT: $w0 = COPY [[ANYEXT]](s32)127    ; CHECK-NEXT: $w1 = COPY [[SEXTLOAD]](s32)128    %0:_(p0) = COPY $x0129    %1:_(s8) = G_LOAD %0 :: (load (s8))130    %2:_(s8) = G_CONSTANT i8 -1131    %3:_(s8) = G_XOR %1, %2132    %5:_(s32) = G_ANYEXT %3133    %6:_(s32) = G_SEXT %1134    $w0 = COPY %5135    $w1 = COPY %6136...137 138---139name:            test_1anyext_1zeroext140body: |141  bb.0:142    liveins: $x0143    ; CHECK-LABEL: name: test_1anyext_1zeroext144    ; CHECK: liveins: $x0145    ; CHECK-NEXT: {{  $}}146    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x0147    ; CHECK-NEXT: [[ZEXTLOAD:%[0-9]+]]:_(s32) = G_ZEXTLOAD [[COPY]](p0) :: (load (s8))148    ; CHECK-NEXT: $w0 = COPY [[ZEXTLOAD]](s32)149    ; CHECK-NEXT: $w1 = COPY [[ZEXTLOAD]](s32)150    %0:_(p0) = COPY $x0151    %1:_(s8) = G_LOAD %0 :: (load (s8))152    %2:_(s32) = G_ANYEXT %1153    %3:_(s32) = G_ZEXT %1154    $w0 = COPY %2155    $w1 = COPY %3156...157 158---159name:            test_1signext_1zeroext160body: |161  bb.0:162    liveins: $x0163    ; CHECK-LABEL: name: test_1signext_1zeroext164    ; CHECK: liveins: $x0165    ; CHECK-NEXT: {{  $}}166    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x0167    ; CHECK-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p0) :: (load (s8))168    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s8) = G_TRUNC [[SEXTLOAD]](s32)169    ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[TRUNC]](s8)170    ; CHECK-NEXT: $w0 = COPY [[ZEXT]](s32)171    ; CHECK-NEXT: $w1 = COPY [[SEXTLOAD]](s32)172    %0:_(p0) = COPY $x0173    %1:_(s8) = G_LOAD %0 :: (load (s8))174    %2:_(s32) = G_ZEXT %1175    %3:_(s32) = G_SEXT %1176    $w0 = COPY %2177    $w1 = COPY %3178...179 180---181name:            test_1anyext64_1signext32182body: |183  bb.0:184    liveins: $x0185    ; CHECK-LABEL: name: test_1anyext64_1signext32186    ; CHECK: liveins: $x0187    ; CHECK-NEXT: {{  $}}188    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x0189    ; CHECK-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p0) :: (load (s8))190    ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[SEXTLOAD]](s32)191    ; CHECK-NEXT: $x0 = COPY [[ANYEXT]](s64)192    ; CHECK-NEXT: $w1 = COPY [[SEXTLOAD]](s32)193    %0:_(p0) = COPY $x0194    %1:_(s8) = G_LOAD %0 :: (load (s8))195    %2:_(s64) = G_ANYEXT %1196    %3:_(s32) = G_SEXT %1197    $x0 = COPY %2198    $w1 = COPY %3199...200 201---202name:            test_1anyext32_1signext64203body: |204  bb.0:205    liveins: $x0206    ; CHECK-LABEL: name: test_1anyext32_1signext64207    ; CHECK: liveins: $x0208    ; CHECK-NEXT: {{  $}}209    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x0210    ; CHECK-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s64) = G_SEXTLOAD [[COPY]](p0) :: (load (s8))211    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s8) = G_TRUNC [[SEXTLOAD]](s64)212    ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[TRUNC]](s8)213    ; CHECK-NEXT: $w0 = COPY [[ANYEXT]](s32)214    ; CHECK-NEXT: $x1 = COPY [[SEXTLOAD]](s64)215    %0:_(p0) = COPY $x0216    %1:_(s8) = G_LOAD %0 :: (load (s8))217    %2:_(s32) = G_ANYEXT %1218    %3:_(s64) = G_SEXT %1219    $w0 = COPY %2220    $x1 = COPY %3221...222 223---224name:            test_2anyext32_1signext64225body: |226  bb.0:227    liveins: $x0228    ; CHECK-LABEL: name: test_2anyext32_1signext64229    ; CHECK: liveins: $x0230    ; CHECK-NEXT: {{  $}}231    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x0232    ; CHECK-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s64) = G_SEXTLOAD [[COPY]](p0) :: (load (s8))233    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s8) = G_TRUNC [[SEXTLOAD]](s64)234    ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[TRUNC]](s8)235    ; CHECK-NEXT: [[ANYEXT1:%[0-9]+]]:_(s32) = G_ANYEXT [[TRUNC]](s8)236    ; CHECK-NEXT: $w0 = COPY [[ANYEXT]](s32)237    ; CHECK-NEXT: $x1 = COPY [[SEXTLOAD]](s64)238    ; CHECK-NEXT: $w2 = COPY [[ANYEXT1]](s32)239    %0:_(p0) = COPY $x0240    %1:_(s8) = G_LOAD %0 :: (load (s8))241    %2:_(s32) = G_ANYEXT %1242    %3:_(s64) = G_SEXT %1243    %4:_(s32) = G_ANYEXT %1244    $w0 = COPY %2245    $x1 = COPY %3246    $w2 = COPY %4247...248 249---250name:            test_multiblock_anyext251body: |252  ; CHECK-LABEL: name: test_multiblock_anyext253  ; CHECK: bb.0:254  ; CHECK-NEXT:   successors: %bb.1(0x80000000)255  ; CHECK-NEXT:   liveins: $x0256  ; CHECK-NEXT: {{  $}}257  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(p0) = COPY $x0258  ; CHECK-NEXT:   [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p0) :: (load (s8))259  ; CHECK-NEXT:   G_BR %bb.1260  ; CHECK-NEXT: {{  $}}261  ; CHECK-NEXT: bb.1:262  ; CHECK-NEXT:   $w0 = COPY [[LOAD]](s32)263  bb.0:264    liveins: $x0265    %0:_(p0) = COPY $x0266    %1:_(s8) = G_LOAD %0 :: (load (s8))267    G_BR %bb.1268  bb.1:269    %2:_(s32) = G_ANYEXT %1270    $w0 = COPY %2271...272 273---274name:            test_multiblock_signext275body: |276  ; CHECK-LABEL: name: test_multiblock_signext277  ; CHECK: bb.0:278  ; CHECK-NEXT:   successors: %bb.1(0x80000000)279  ; CHECK-NEXT:   liveins: $x0280  ; CHECK-NEXT: {{  $}}281  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(p0) = COPY $x0282  ; CHECK-NEXT:   [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p0) :: (load (s8))283  ; CHECK-NEXT:   G_BR %bb.1284  ; CHECK-NEXT: {{  $}}285  ; CHECK-NEXT: bb.1:286  ; CHECK-NEXT:   $w0 = COPY [[SEXTLOAD]](s32)287  bb.0:288    liveins: $x0289    %0:_(p0) = COPY $x0290    %1:_(s8) = G_LOAD %0 :: (load (s8))291    G_BR %bb.1292  bb.1:293    %2:_(s32) = G_SEXT %1294    $w0 = COPY %2295...296 297---298name:            test_multiblock_zeroext299body: |300  ; CHECK-LABEL: name: test_multiblock_zeroext301  ; CHECK: bb.0:302  ; CHECK-NEXT:   successors: %bb.1(0x80000000)303  ; CHECK-NEXT:   liveins: $x0304  ; CHECK-NEXT: {{  $}}305  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(p0) = COPY $x0306  ; CHECK-NEXT:   [[ZEXTLOAD:%[0-9]+]]:_(s32) = G_ZEXTLOAD [[COPY]](p0) :: (load (s8))307  ; CHECK-NEXT:   G_BR %bb.1308  ; CHECK-NEXT: {{  $}}309  ; CHECK-NEXT: bb.1:310  ; CHECK-NEXT:   $w0 = COPY [[ZEXTLOAD]](s32)311  bb.0:312    liveins: $x0313    %0:_(p0) = COPY $x0314    %1:_(s8) = G_LOAD %0 :: (load (s8))315    G_BR %bb.1316  bb.1:317    %2:_(s32) = G_ZEXT %1318    $w0 = COPY %2319...320 321---322name:            test_multiblock_2anyext323body: |324  ; CHECK-LABEL: name: test_multiblock_2anyext325  ; CHECK: bb.0:326  ; CHECK-NEXT:   successors: %bb.1(0x80000000)327  ; CHECK-NEXT:   liveins: $x0328  ; CHECK-NEXT: {{  $}}329  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(p0) = COPY $x0330  ; CHECK-NEXT:   [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p0) :: (load (s8))331  ; CHECK-NEXT:   G_BR %bb.1332  ; CHECK-NEXT: {{  $}}333  ; CHECK-NEXT: bb.1:334  ; CHECK-NEXT:   $w0 = COPY [[LOAD]](s32)335  ; CHECK-NEXT:   $w1 = COPY [[LOAD]](s32)336  bb.0:337    liveins: $x0338    %0:_(p0) = COPY $x0339    %1:_(s8) = G_LOAD %0 :: (load (s8))340    %2:_(s32) = G_ANYEXT %1341    G_BR %bb.1342  bb.1:343    %3:_(s32) = G_ANYEXT %1344    $w0 = COPY %2345    $w1 = COPY %3346...347 348---349name:            test_multiblock_1anyext64_1signext32350body: |351  ; CHECK-LABEL: name: test_multiblock_1anyext64_1signext32352  ; CHECK: bb.0:353  ; CHECK-NEXT:   successors: %bb.1(0x80000000)354  ; CHECK-NEXT:   liveins: $x0355  ; CHECK-NEXT: {{  $}}356  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(p0) = COPY $x0357  ; CHECK-NEXT:   [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p0) :: (load (s8))358  ; CHECK-NEXT:   G_BR %bb.1359  ; CHECK-NEXT: {{  $}}360  ; CHECK-NEXT: bb.1:361  ; CHECK-NEXT:   [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[SEXTLOAD]](s32)362  ; CHECK-NEXT:   $x0 = COPY [[ANYEXT]](s64)363  ; CHECK-NEXT:   $w1 = COPY [[SEXTLOAD]](s32)364  bb.0:365    liveins: $x0366    %0:_(p0) = COPY $x0367    %1:_(s8) = G_LOAD %0 :: (load (s8))368    G_BR %bb.1369  bb.1:370    %2:_(s64) = G_ANYEXT %1371    %3:_(s32) = G_SEXT %1372    $x0 = COPY %2373    $w1 = COPY %3374...375 376---377name:            test_multiblock_1anyext32_1signext64378body: |379  ; CHECK-LABEL: name: test_multiblock_1anyext32_1signext64380  ; CHECK: bb.0:381  ; CHECK-NEXT:   successors: %bb.1(0x80000000)382  ; CHECK-NEXT:   liveins: $x0383  ; CHECK-NEXT: {{  $}}384  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(p0) = COPY $x0385  ; CHECK-NEXT:   [[SEXTLOAD:%[0-9]+]]:_(s64) = G_SEXTLOAD [[COPY]](p0) :: (load (s8))386  ; CHECK-NEXT:   G_BR %bb.1387  ; CHECK-NEXT: {{  $}}388  ; CHECK-NEXT: bb.1:389  ; CHECK-NEXT:   [[TRUNC:%[0-9]+]]:_(s8) = G_TRUNC [[SEXTLOAD]](s64)390  ; CHECK-NEXT:   [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[TRUNC]](s8)391  ; CHECK-NEXT:   $w0 = COPY [[ANYEXT]](s32)392  ; CHECK-NEXT:   $x1 = COPY [[SEXTLOAD]](s64)393  bb.0:394    liveins: $x0395    %0:_(p0) = COPY $x0396    %1:_(s8) = G_LOAD %0 :: (load (s8))397    G_BR %bb.1398  bb.1:399    %2:_(s32) = G_ANYEXT %1400    %3:_(s64) = G_SEXT %1401    $w0 = COPY %2402    $x1 = COPY %3403...404 405---406name:            test_multiblock_2anyext32_1signext64407body: |408  ; CHECK-LABEL: name: test_multiblock_2anyext32_1signext64409  ; CHECK: bb.0:410  ; CHECK-NEXT:   successors: %bb.1(0x80000000)411  ; CHECK-NEXT:   liveins: $x0412  ; CHECK-NEXT: {{  $}}413  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(p0) = COPY $x0414  ; CHECK-NEXT:   [[SEXTLOAD:%[0-9]+]]:_(s64) = G_SEXTLOAD [[COPY]](p0) :: (load (s8))415  ; CHECK-NEXT:   [[TRUNC:%[0-9]+]]:_(s8) = G_TRUNC [[SEXTLOAD]](s64)416  ; CHECK-NEXT:   [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[TRUNC]](s8)417  ; CHECK-NEXT:   G_BR %bb.1418  ; CHECK-NEXT: {{  $}}419  ; CHECK-NEXT: bb.1:420  ; CHECK-NEXT:   [[TRUNC1:%[0-9]+]]:_(s8) = G_TRUNC [[SEXTLOAD]](s64)421  ; CHECK-NEXT:   [[ANYEXT1:%[0-9]+]]:_(s32) = G_ANYEXT [[TRUNC1]](s8)422  ; CHECK-NEXT:   $w0 = COPY [[ANYEXT1]](s32)423  ; CHECK-NEXT:   $x1 = COPY [[SEXTLOAD]](s64)424  ; CHECK-NEXT:   $w2 = COPY [[ANYEXT]](s32)425  bb.0:426    liveins: $x0427    %0:_(p0) = COPY $x0428    %1:_(s8) = G_LOAD %0 :: (load (s8))429    %4:_(s32) = G_ANYEXT %1430    G_BR %bb.1431  bb.1:432    %2:_(s32) = G_ANYEXT %1433    %3:_(s64) = G_SEXT %1434    $w0 = COPY %2435    $x1 = COPY %3436    $w2 = COPY %4437...438---439name:            test_atomic440alignment:       4441tracksRegLiveness: true442liveins:443  - { reg: '$x0' }444body:             |445  bb.1:446    liveins: $x0447 448    ; CHECK-LABEL: name: test_atomic449    ; CHECK: liveins: $x0450    ; CHECK-NEXT: {{  $}}451    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x0452    ; CHECK-NEXT: [[LOAD:%[0-9]+]]:_(s16) = G_LOAD [[COPY]](p0) :: (load unordered (s16))453    ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[LOAD]](s16)454    ; CHECK-NEXT: $w0 = COPY [[ZEXT]](s32)455    ; CHECK-NEXT: RET_ReallyLR implicit $w0456    %0:_(p0) = COPY $x0457    %1:_(s16) = G_LOAD %0(p0) :: (load unordered (s16))458    %2:_(s32) = G_ZEXT %1(s16)459    $w0 = COPY %2(s32)460    RET_ReallyLR implicit $w0461...462---463name:            test_dont_zextload_to_sextload464body: |465  bb.0:466    liveins: $x0467    ; CHECK-LABEL: name: test_dont_zextload_to_sextload468    ; CHECK: liveins: $x0469    ; CHECK-NEXT: {{  $}}470    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x0471    ; CHECK-NEXT: [[ZEXTLOAD:%[0-9]+]]:_(s64) = G_ZEXTLOAD [[COPY]](p0) :: (load (s8))472    ; CHECK-NEXT: $x0 = COPY [[ZEXTLOAD]](s64)473    ; CHECK-NEXT: $x1 = COPY [[ZEXTLOAD]](s64)474    %0:_(p0) = COPY $x0475    %1:_(s32) = G_ZEXTLOAD %0 :: (load (s8))476    %2:_(s64) = G_ZEXT %1477    %3:_(s64) = G_SEXT %1478    $x0 = COPY %2479    $x1 = COPY %3480...481