Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / CodeGen / PowerPC / ld-bswap64-no-ldbrx.ll
blobdf213220e401e2b8a0fc7a016e410b000b312fae
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc -mtriple=powerpc64-- -mcpu=pwr5 -verify-machineinstrs < %s | \
3 ; RUN:   FileCheck %s
4 define void @bs(ptr %p) {
5 ; CHECK-LABEL: bs:
6 ; CHECK:       # %bb.0:
7 ; CHECK-NEXT:    li 4, 4
8 ; CHECK-NEXT:    lwbrx 5, 0, 3
9 ; CHECK-NEXT:    lwbrx 4, 3, 4
10 ; CHECK-NEXT:    rldimi 5, 4, 32, 0
11 ; CHECK-NEXT:    std 5, 0(3)
12 ; CHECK-NEXT:    blr
13   %x = load i64, ptr %p, align 8
14   %b = call i64 @llvm.bswap.i64(i64 %x)
15   store i64 %b, ptr %p, align 8
16   ret void
19 define i64 @volatile_ld(ptr %p) {
20 ; CHECK-LABEL: volatile_ld:
21 ; CHECK:       # %bb.0:
22 ; CHECK-NEXT:    ld 4, 0(3)
23 ; CHECK-NEXT:    rotldi 5, 4, 16
24 ; CHECK-NEXT:    rotldi 3, 4, 8
25 ; CHECK-NEXT:    rldimi 3, 5, 8, 48
26 ; CHECK-NEXT:    rotldi 5, 4, 24
27 ; CHECK-NEXT:    rldimi 3, 5, 16, 40
28 ; CHECK-NEXT:    rotldi 5, 4, 32
29 ; CHECK-NEXT:    rldimi 3, 5, 24, 32
30 ; CHECK-NEXT:    rotldi 5, 4, 48
31 ; CHECK-NEXT:    rldimi 3, 5, 40, 16
32 ; CHECK-NEXT:    rotldi 5, 4, 56
33 ; CHECK-NEXT:    rldimi 3, 5, 48, 8
34 ; CHECK-NEXT:    rldimi 3, 4, 56, 0
35 ; CHECK-NEXT:    blr
36   %x = load volatile i64, ptr %p, align 8
37   %b = call i64 @llvm.bswap.i64(i64 %x)
38   ret i64 %b
41 define i64 @misaligned_ld(ptr %p) {
42 ; CHECK-LABEL: misaligned_ld:
43 ; CHECK:       # %bb.0:
44 ; CHECK-NEXT:    li 4, 4
45 ; CHECK-NEXT:    lwbrx 4, 3, 4
46 ; CHECK-NEXT:    lwbrx 3, 0, 3
47 ; CHECK-NEXT:    rldimi 3, 4, 32, 0
48 ; CHECK-NEXT:    blr
49   %x = load i64, ptr %p, align 1
50   %b = call i64 @llvm.bswap.i64(i64 %x)
51   ret i64 %b
54 declare i64 @llvm.bswap.i64(i64) #2