18e4ba8f7b19615907e5874b3aa661d52c21fff74Ulrich Weigand
236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# RUN: llvm-mc -triple powerpc64-unknown-unknown --show-encoding %s | FileCheck -check-prefix=CHECK-BE %s
336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# RUN: llvm-mc -triple powerpc64le-unknown-unknown --show-encoding %s | FileCheck -check-prefix=CHECK-LE %s
48e4ba8f7b19615907e5874b3aa661d52c21fff74Ulrich Weigand
58e4ba8f7b19615907e5874b3aa661d52c21fff74Ulrich Weigand# Cache management instruction
68e4ba8f7b19615907e5874b3aa661d52c21fff74Ulrich Weigand
736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-BE: icbi 2, 3                       # encoding: [0x7c,0x02,0x1f,0xac]
836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-LE: icbi 2, 3                       # encoding: [0xac,0x1f,0x02,0x7c]
936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines            icbi 2, 3
1036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
1136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# FIXME:    dcbt 2, 3, 10
1236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-BE: dcbt 2, 3                       # encoding: [0x7c,0x02,0x1a,0x2c]
1336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-LE: dcbt 2, 3                       # encoding: [0x2c,0x1a,0x02,0x7c]
1436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines            dcbt 2, 3
1536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# FIXME:    dcbtst 2, 3, 10
1636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-BE: dcbtst 2, 3                     # encoding: [0x7c,0x02,0x19,0xec]
1736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-LE: dcbtst 2, 3                     # encoding: [0xec,0x19,0x02,0x7c]
1836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines            dcbtst 2, 3
1936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-BE: dcbz 2, 3                       # encoding: [0x7c,0x02,0x1f,0xec]
2036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-LE: dcbz 2, 3                       # encoding: [0xec,0x1f,0x02,0x7c]
2136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines            dcbz 2, 3
2236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-BE: dcbst 2, 3                      # encoding: [0x7c,0x02,0x18,0x6c]
2336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-LE: dcbst 2, 3                      # encoding: [0x6c,0x18,0x02,0x7c]
2436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines            dcbst 2, 3
2536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# FIXME:    dcbf 2, 3, 1
268e4ba8f7b19615907e5874b3aa661d52c21fff74Ulrich Weigand
278e4ba8f7b19615907e5874b3aa661d52c21fff74Ulrich Weigand# Synchronization instructions
288e4ba8f7b19615907e5874b3aa661d52c21fff74Ulrich Weigand
2936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-BE: isync                           # encoding: [0x4c,0x00,0x01,0x2c]
3036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-LE: isync                           # encoding: [0x2c,0x01,0x00,0x4c]
3136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines            isync
3236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
3336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# FIXME:    lbarx 2, 3, 4, 1
3436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# FIXME:    lharx 2, 3, 4, 1
3536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# FIXME:    lwarx 2, 3, 4, 1
3636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# FIXME:    ldarx 2, 3, 4, 1
3736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
3836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# FIXME:    stbcx. 2, 3, 4
3936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# FIXME:    sthcx. 2, 3, 4
4036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-BE: stwcx. 2, 3, 4                  # encoding: [0x7c,0x43,0x21,0x2d]
4136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-LE: stwcx. 2, 3, 4                  # encoding: [0x2d,0x21,0x43,0x7c]
4236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines            stwcx. 2, 3, 4
4336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-BE: stdcx. 2, 3, 4                  # encoding: [0x7c,0x43,0x21,0xad]
4436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-LE: stdcx. 2, 3, 4                  # encoding: [0xad,0x21,0x43,0x7c]
4536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines            stdcx. 2, 3, 4
4636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
4736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-BE: sync 2                          # encoding: [0x7c,0x40,0x04,0xac]
4836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-LE: sync 2                          # encoding: [0xac,0x04,0x40,0x7c]
4936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines            sync 2
5036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-BE: eieio                           # encoding: [0x7c,0x00,0x06,0xac]
5136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-LE: eieio                           # encoding: [0xac,0x06,0x00,0x7c]
5236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines            eieio
5336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-BE: wait 2                          # encoding: [0x7c,0x40,0x00,0x7c]
5436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-LE: wait 2                          # encoding: [0x7c,0x00,0x40,0x7c]
5536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines            wait 2
568e4ba8f7b19615907e5874b3aa661d52c21fff74Ulrich Weigand
578e4ba8f7b19615907e5874b3aa661d52c21fff74Ulrich Weigand# Extended mnemonics
588e4ba8f7b19615907e5874b3aa661d52c21fff74Ulrich Weigand
5936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-BE: dcbf 2, 3                       # encoding: [0x7c,0x02,0x18,0xac]
6036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-LE: dcbf 2, 3                       # encoding: [0xac,0x18,0x02,0x7c]
6136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines            dcbf 2, 3
6236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# FIXME:    dcbfl 2, 3
6336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
6436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# FIXME:    lbarx 2, 3, 4
6536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# FIXME:    lharx 2, 3, 4
6636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-BE: lwarx 2, 3, 4                   # encoding: [0x7c,0x43,0x20,0x28]
6736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-LE: lwarx 2, 3, 4                   # encoding: [0x28,0x20,0x43,0x7c]
6836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines            lwarx 2, 3, 4
6936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-BE: ldarx 2, 3, 4                   # encoding: [0x7c,0x43,0x20,0xa8]
7036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-LE: ldarx 2, 3, 4                   # encoding: [0xa8,0x20,0x43,0x7c]
7136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines            ldarx 2, 3, 4
7236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
7336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-BE: sync 0                          # encoding: [0x7c,0x00,0x04,0xac]
7436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-LE: sync 0                          # encoding: [0xac,0x04,0x00,0x7c]
7536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines            sync
7636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-BE: sync 0                          # encoding: [0x7c,0x00,0x04,0xac]
7736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-LE: sync 0                          # encoding: [0xac,0x04,0x00,0x7c]
7836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines            msync
7936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-BE: sync 1                          # encoding: [0x7c,0x20,0x04,0xac]
8036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-LE: sync 1                          # encoding: [0xac,0x04,0x20,0x7c]
8136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines            lwsync
8236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-BE: sync 2                          # encoding: [0x7c,0x40,0x04,0xac]
8336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-LE: sync 2                          # encoding: [0xac,0x04,0x40,0x7c]
8436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines            ptesync
8536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
8636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-BE: wait 0                          # encoding: [0x7c,0x00,0x00,0x7c]
8736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-LE: wait 0                          # encoding: [0x7c,0x00,0x00,0x7c]
8836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines            wait
8936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-BE: wait 1                          # encoding: [0x7c,0x20,0x00,0x7c]
9036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-LE: wait 1                          # encoding: [0x7c,0x00,0x20,0x7c]
9136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines            waitrsv
9236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-BE: wait 2                          # encoding: [0x7c,0x40,0x00,0x7c]
9336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-LE: wait 2                          # encoding: [0x7c,0x00,0x40,0x7c]
9436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines            waitimpl
958e4ba8f7b19615907e5874b3aa661d52c21fff74Ulrich Weigand
9619d2b78978905cfde0a0d7190c8480219fb2d1c6Ulrich Weigand# Time base instructions
9719d2b78978905cfde0a0d7190c8480219fb2d1c6Ulrich Weigand
9836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-BE: mftb 2, 123                     # encoding: [0x7c,0x5b,0x1a,0xe6]
9936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-LE: mftb 2, 123                     # encoding: [0xe6,0x1a,0x5b,0x7c]
10036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines            mftb 2, 123
10136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-BE: mftb 2, 268                     # encoding: [0x7c,0x4c,0x42,0xe6]
10236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-LE: mftb 2, 268                     # encoding: [0xe6,0x42,0x4c,0x7c]
10336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines            mftb 2
10436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-BE: mftb 2, 269                     # encoding: [0x7c,0x4d,0x42,0xe6]
10536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-LE: mftb 2, 269                     # encoding: [0xe6,0x42,0x4d,0x7c]
10636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines            mftbu 2
10719d2b78978905cfde0a0d7190c8480219fb2d1c6Ulrich Weigand
108