1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-26 04:32:44 +01:00

[llvm-objdump] -d: print 00000000 <foo>: instead of 00000000 foo:

The new behavior matches GNU objdump. A pair of angle brackets makes tests slightly easier.

`.foo:` is not unique and thus cannot be used in a `CHECK-LABEL:` directive.
Without `-LABEL`, the CHECK line can match the `Disassembly of section`
line and causes the next `CHECK-NEXT:` to fail.

```
Disassembly of section .foo:

0000000000001634 .foo:
```

Bdragon: <> has metalinguistic connotation. it just "feels right"

Reviewed By: rupprecht

Differential Revision: https://reviews.llvm.org/D75713
This commit is contained in:
Fangrui Song 2020-03-05 14:18:38 -08:00
parent 25e7b20da0
commit 25a0241f66
147 changed files with 744 additions and 760 deletions

View File

@ -14,5 +14,5 @@ define void @foo() nounwind {
; CHECK-ELF: file format elf64-aarch64 ; CHECK-ELF: file format elf64-aarch64
; CHECK-ELF: Disassembly of section .text ; CHECK-ELF: Disassembly of section .text
; CHECK-ELF-LABEL: foo: ; CHECK-ELF-LABEL: <foo>:
; CHECK-ELF: ret ; CHECK-ELF: ret

View File

@ -6,11 +6,11 @@
@l = common hidden local_unnamed_addr global i32 0, align 4 @l = common hidden local_unnamed_addr global i32 0, align 4
; CHECK-LABEL: test1: ; CHECK-LABEL: <test1>:
; CHECK-LABEL: $d.1: ; CHECK-LABEL: <$d.1>:
; CHECK-LABEL: $x.2: ; CHECK-LABEL: <$x.2>:
; CHECK-NEXT: b #16 <$x.4+0x4> ; CHECK-NEXT: b #16 <$x.4+0x4>
; CHECK-LABEL: $x.4: ; CHECK-LABEL: <$x.4>:
; CHECK-NEXT: b #4 <$x.4+0x4> ; CHECK-NEXT: b #4 <$x.4+0x4>
; CHECK-NEXT: mov w0, wzr ; CHECK-NEXT: mov w0, wzr
; CHECK-NEXT: ldr x30, [sp], #16 ; CHECK-NEXT: ldr x30, [sp], #16
@ -40,10 +40,10 @@ declare dso_local i32 @g(...) local_unnamed_addr
declare dso_local i32 @i(...) local_unnamed_addr declare dso_local i32 @i(...) local_unnamed_addr
; CHECK-LABEL: test2: ; CHECK-LABEL: <test2>:
; CHECK: bl #0 <test2+0x10> ; CHECK: bl #0 <test2+0x10>
; CHECK-LABEL: $d.5: ; CHECK-LABEL: <$d.5>:
; CHECK-LABEL: $x.6: ; CHECK-LABEL: <$x.6>:
; CHECK-NEXT: b #16 <$x.8+0x4> ; CHECK-NEXT: b #16 <$x.8+0x4>
define hidden i32 @test2() local_unnamed_addr { define hidden i32 @test2() local_unnamed_addr {
%1 = load i32, i32* @l, align 4 %1 = load i32, i32* @l, align 4
@ -70,11 +70,11 @@ define hidden i32 @test2() local_unnamed_addr {
ret i32 undef ret i32 undef
} }
; CHECK-LABEL: test3: ; CHECK-LABEL: <test3>:
; CHECK-LABEL: $d.9: ; CHECK-LABEL: <$d.9>:
; CHECK-LABEL: $x.10: ; CHECK-LABEL: <$x.10>:
; CHECK-NEXT: b #-20 <test3+0x18> ; CHECK-NEXT: b #-20 <test3+0x18>
; CHECK-LABEL: $x.12: ; CHECK-LABEL: <$x.12>:
; CHECK-NEXT: b #4 <$x.12+0x4> ; CHECK-NEXT: b #4 <$x.12+0x4>
; CHECK-NEXT: mov w0, wzr ; CHECK-NEXT: mov w0, wzr
; CHECK-NEXT: ldr x30, [sp], #16 ; CHECK-NEXT: ldr x30, [sp], #16

View File

@ -4,7 +4,7 @@
; demonstrate the bug. Going the asm->obj route does not show the issue. ; demonstrate the bug. Going the asm->obj route does not show the issue.
; RUN: llc -mtriple=aarch64 < %s -filetype=obj | llvm-objdump -arch=aarch64 -d - | FileCheck %s ; RUN: llc -mtriple=aarch64 < %s -filetype=obj | llvm-objdump -arch=aarch64 -d - | FileCheck %s
; CHECK-LABEL: foo: ; CHECK-LABEL: <foo>:
; CHECK: a0 79 95 d2 mov x0, #43981 ; CHECK: a0 79 95 d2 mov x0, #43981
; CHECK: c0 03 5f d6 ret ; CHECK: c0 03 5f d6 ret
define i32 @foo() nounwind { define i32 @foo() nounwind {
@ -12,11 +12,11 @@ entry:
%0 = tail call i32 asm sideeffect "ldr $0,=0xabcd", "=r"() nounwind %0 = tail call i32 asm sideeffect "ldr $0,=0xabcd", "=r"() nounwind
ret i32 %0 ret i32 %0
} }
; CHECK-LABEL: bar: ; CHECK-LABEL: <bar>:
; CHECK: 40 00 00 58 ldr x0, #8 ; CHECK: 40 00 00 58 ldr x0, #8
; CHECK: c0 03 5f d6 ret ; CHECK: c0 03 5f d6 ret
; Make sure the constant pool entry comes after the return ; Make sure the constant pool entry comes after the return
; CHECK-LABEL: $d.1: ; CHECK-LABEL: <$d.1>:
define i32 @bar() nounwind { define i32 @bar() nounwind {
entry: entry:
%0 = tail call i32 asm sideeffect "ldr $0,=0x10001", "=r"() nounwind %0 = tail call i32 asm sideeffect "ldr $0,=0x10001", "=r"() nounwind

View File

@ -10,7 +10,7 @@ entry:
} }
; CHECK: // SPACE ; CHECK: // SPACE
; CHECK-NEXT: ret ; CHECK-NEXT: ret
; DUMP-LABEL: f: ; DUMP-LABEL: <f>:
; DUMP-NEXT: ret ; DUMP-NEXT: ret
declare dso_local i64 @llvm.aarch64.space(i32, i64) local_unnamed_addr #0 declare dso_local i64 @llvm.aarch64.space(i32, i64) local_unnamed_addr #0

View File

@ -1,6 +1,6 @@
; RUN: llc -mtriple=amdgcn--amdhsa -mattr=-code-object-v3 -mcpu=fiji -filetype=obj < %s | llvm-objdump -d - -mcpu=fiji | FileCheck %s ; RUN: llc -mtriple=amdgcn--amdhsa -mattr=-code-object-v3 -mcpu=fiji -filetype=obj < %s | llvm-objdump -d - -mcpu=fiji | FileCheck %s
; CHECK: kernel0: ; CHECK: <kernel0>:
; CHECK-NEXT: s_endpgm ; CHECK-NEXT: s_endpgm
define amdgpu_kernel void @kernel0() align 256 { define amdgpu_kernel void @kernel0() align 256 {
entry: entry:
@ -79,7 +79,7 @@ entry:
; CHECK-NEXT: s_nop 0 // 0000000001FC: BF800000 ; CHECK-NEXT: s_nop 0 // 0000000001FC: BF800000
; CHECK-EMPTY: ; CHECK-EMPTY:
; CHECK-NEXT: kernel1: ; CHECK-NEXT: <kernel1>:
; CHECK-NEXT: s_endpgm ; CHECK-NEXT: s_endpgm
define amdgpu_kernel void @kernel1(i32 addrspace(1)* addrspace(4)* %ptr.out) align 256 { define amdgpu_kernel void @kernel1(i32 addrspace(1)* addrspace(4)* %ptr.out) align 256 {
entry: entry:

View File

@ -4,7 +4,7 @@
; RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=gfx1010 -asm-verbose=0 < %s | FileCheck -check-prefixes=GCN,GCN-ASM,GFX10NOEND,GFX10NOEND-ASM %s ; RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=gfx1010 -asm-verbose=0 < %s | FileCheck -check-prefixes=GCN,GCN-ASM,GFX10NOEND,GFX10NOEND-ASM %s
; RUN: llc -mtriple=amdgcn-- -mcpu=gfx1010 -filetype=obj < %s | llvm-objdump -arch=amdgcn -mcpu=gfx1010 -disassemble - | FileCheck -check-prefixes=GCN,GCN-OBJ,GFX10NOEND,GFX10NOEND-OBJ %s ; RUN: llc -mtriple=amdgcn-- -mcpu=gfx1010 -filetype=obj < %s | llvm-objdump -arch=amdgcn -mcpu=gfx1010 -disassemble - | FileCheck -check-prefixes=GCN,GCN-OBJ,GFX10NOEND,GFX10NOEND-OBJ %s
; GCN: a_kernel1: ; GCN: a_kernel1{{>?}}:
; GCN: s_endpgm ; GCN: s_endpgm
; GCN-ASM: [[END_LABEL1:\.Lfunc_end.*]]: ; GCN-ASM: [[END_LABEL1:\.Lfunc_end.*]]:
; GCN-ASM-NEXT: .size a_kernel1, [[END_LABEL1]]-a_kernel1 ; GCN-ASM-NEXT: .size a_kernel1, [[END_LABEL1]]-a_kernel1
@ -15,7 +15,7 @@ define amdgpu_kernel void @a_kernel1() {
ret void ret void
} }
; GCN: a_kernel2: ; GCN: a_kernel2{{>?}}:
; GCN: s_endpgm ; GCN: s_endpgm
; GCN-ASM: [[END_LABEL2:\.Lfunc_end.*]]: ; GCN-ASM: [[END_LABEL2:\.Lfunc_end.*]]:
; GCN-ASM-NEXT: .size a_kernel2, [[END_LABEL2]]-a_kernel2 ; GCN-ASM-NEXT: .size a_kernel2, [[END_LABEL2]]-a_kernel2
@ -30,7 +30,7 @@ define amdgpu_kernel void @a_kernel2() {
; GCN-ASM-NEXT: .p2align 2 ; GCN-ASM-NEXT: .p2align 2
; GCN-ASM-NEXT: .type a_function,@function ; GCN-ASM-NEXT: .type a_function,@function
; GCN-NEXT: a_function: ; GCN-NEXT: a_function{{>?}}:
; GCN: s_setpc_b64 ; GCN: s_setpc_b64
; GCN-ASM-NEXT: [[END_LABEL3:\.Lfunc_end.*]]: ; GCN-ASM-NEXT: [[END_LABEL3:\.Lfunc_end.*]]:
; GCN-ASM-NEXT: .size a_function, [[END_LABEL3]]-a_function ; GCN-ASM-NEXT: .size a_function, [[END_LABEL3]]-a_function

View File

@ -4,7 +4,7 @@
define void @foo() { define void @foo() {
; CHECK: file format coff-arm ; CHECK: file format coff-arm
; CHECK-LABEL: foo: ; CHECK-LABEL: <foo>:
; CHECK: bx lr ; CHECK: bx lr
ret void ret void
} }

View File

@ -5,7 +5,7 @@
; demonstrate the bug. Going the asm->obj route does not show the issue. ; demonstrate the bug. Going the asm->obj route does not show the issue.
; RUN: llc -mtriple=arm-none-linux < %s -filetype=obj | llvm-objdump -d - | FileCheck %s ; RUN: llc -mtriple=arm-none-linux < %s -filetype=obj | llvm-objdump -d - | FileCheck %s
; RUN: llc -mtriple=arm-apple-darwin < %s -filetype=obj | llvm-objdump -d - | FileCheck %s ; RUN: llc -mtriple=arm-apple-darwin < %s -filetype=obj | llvm-objdump -d - | FileCheck %s
; CHECK-LABEL: foo: ; CHECK-LABEL: <{{_?}}foo>:
; CHECK: 0: 00 00 9f e5 ldr r0, [pc] ; CHECK: 0: 00 00 9f e5 ldr r0, [pc]
; CHECK: 4: 0e f0 a0 e1 mov pc, lr ; CHECK: 4: 0e f0 a0 e1 mov pc, lr
; Make sure the constant pool entry comes after the return ; Make sure the constant pool entry comes after the return

View File

@ -53,11 +53,11 @@ declare void @use_M(%struct.M* byval)
%struct.N = type { [ 128 x i8 ] } ; 128 bytes %struct.N = type { [ 128 x i8 ] } ; 128 bytes
declare void @use_N(%struct.N* byval) declare void @use_N(%struct.N* byval)
;ARM-LABEL: test_A_1: ;ARM-LABEL: <test_A_1>:
;THUMB2-LABEL: test_A_1: ;THUMB2-LABEL: <test_A_1>:
;NO_NEON-LABEL:test_A_1: ;NO_NEON-LABEL:<test_A_1>:
;THUMB1-LABEL: test_A_1: ;THUMB1-LABEL: <test_A_1>:
;T1POST-LABEL: test_A_1: ;T1POST-LABEL: <test_A_1>:
define void @test_A_1() { define void @test_A_1() {
;ARM: ldrb r{{[0-9]+}}, [{{.*}}], #1 ;ARM: ldrb r{{[0-9]+}}, [{{.*}}], #1
@ -74,11 +74,11 @@ declare void @use_N(%struct.N* byval)
call void @use_A(%struct.A* byval align 1 %a) call void @use_A(%struct.A* byval align 1 %a)
ret void ret void
} }
;ARM-LABEL: test_A_2: ;ARM-LABEL: <test_A_2>:
;THUMB2-LABEL: test_A_2: ;THUMB2-LABEL: <test_A_2>:
;NO_NEON-LABEL:test_A_2: ;NO_NEON-LABEL:<test_A_2>:
;THUMB1-LABEL: test_A_2: ;THUMB1-LABEL: <test_A_2>:
;T1POST-LABEL: test_A_2: ;T1POST-LABEL: <test_A_2>:
define void @test_A_2() { define void @test_A_2() {
;ARM: ldrh r{{[0-9]+}}, [{{.*}}], #2 ;ARM: ldrh r{{[0-9]+}}, [{{.*}}], #2
@ -95,11 +95,11 @@ declare void @use_N(%struct.N* byval)
call void @use_A(%struct.A* byval align 2 %a) call void @use_A(%struct.A* byval align 2 %a)
ret void ret void
} }
;ARM-LABEL: test_A_4: ;ARM-LABEL: <test_A_4>:
;THUMB2-LABEL: test_A_4: ;THUMB2-LABEL: <test_A_4>:
;NO_NEON-LABEL:test_A_4: ;NO_NEON-LABEL:<test_A_4>:
;THUMB1-LABEL: test_A_4: ;THUMB1-LABEL: <test_A_4>:
;T1POST-LABEL: test_A_4: ;T1POST-LABEL: <test_A_4>:
define void @test_A_4() { define void @test_A_4() {
;ARM: ldr r{{[0-9]+}}, [{{.*}}], #4 ;ARM: ldr r{{[0-9]+}}, [{{.*}}], #4
@ -116,11 +116,11 @@ declare void @use_N(%struct.N* byval)
call void @use_A(%struct.A* byval align 4 %a) call void @use_A(%struct.A* byval align 4 %a)
ret void ret void
} }
;ARM-LABEL: test_A_8: ;ARM-LABEL: <test_A_8>:
;THUMB2-LABEL: test_A_8: ;THUMB2-LABEL: <test_A_8>:
;NO_NEON-LABEL:test_A_8: ;NO_NEON-LABEL:<test_A_8>:
;THUMB1-LABEL: test_A_8: ;THUMB1-LABEL: <test_A_8>:
;T1POST-LABEL: test_A_8: ;T1POST-LABEL: <test_A_8>:
define void @test_A_8() { define void @test_A_8() {
;ARM: vld1.32 {d{{[0-9]+}}}, [{{.*}}]! ;ARM: vld1.32 {d{{[0-9]+}}}, [{{.*}}]!
@ -138,11 +138,11 @@ declare void @use_N(%struct.N* byval)
call void @use_A(%struct.A* byval align 8 %a) call void @use_A(%struct.A* byval align 8 %a)
ret void ret void
} }
;ARM-LABEL: test_A_16: ;ARM-LABEL: <test_A_16>:
;THUMB2-LABEL: test_A_16: ;THUMB2-LABEL: <test_A_16>:
;NO_NEON-LABEL:test_A_16: ;NO_NEON-LABEL:<test_A_16>:
;THUMB1-LABEL: test_A_16: ;THUMB1-LABEL: <test_A_16>:
;T1POST-LABEL: test_A_16: ;T1POST-LABEL: <test_A_16>:
define void @test_A_16() { define void @test_A_16() {
;ARM: vld1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [{{.*}}]! ;ARM: vld1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [{{.*}}]!
;ARM: ldrb r{{[0-9]+}}, [{{.*}}], #1 ;ARM: ldrb r{{[0-9]+}}, [{{.*}}], #1
@ -162,11 +162,11 @@ declare void @use_N(%struct.N* byval)
call void @use_A(%struct.A* byval align 16 %a) call void @use_A(%struct.A* byval align 16 %a)
ret void ret void
} }
;ARM-LABEL: test_B_1: ;ARM-LABEL: <test_B_1>:
;THUMB2-LABEL: test_B_1: ;THUMB2-LABEL: <test_B_1>:
;NO_NEON-LABEL:test_B_1: ;NO_NEON-LABEL:<test_B_1>:
;THUMB1-LABEL: test_B_1: ;THUMB1-LABEL: <test_B_1>:
;T1POST-LABEL: test_B_1: ;T1POST-LABEL: <test_B_1>:
define void @test_B_1() { define void @test_B_1() {
;ARM: ldrb r{{[0-9]+}}, [{{.*}}], #1 ;ARM: ldrb r{{[0-9]+}}, [{{.*}}], #1
@ -183,11 +183,11 @@ declare void @use_N(%struct.N* byval)
call void @use_B(%struct.B* byval align 1 %a) call void @use_B(%struct.B* byval align 1 %a)
ret void ret void
} }
;ARM-LABEL: test_B_2: ;ARM-LABEL: <test_B_2>:
;THUMB2-LABEL: test_B_2: ;THUMB2-LABEL: <test_B_2>:
;NO_NEON-LABEL:test_B_2: ;NO_NEON-LABEL:<test_B_2>:
;THUMB1-LABEL: test_B_2: ;THUMB1-LABEL: <test_B_2>:
;T1POST-LABEL: test_B_2: ;T1POST-LABEL: <test_B_2>:
define void @test_B_2() { define void @test_B_2() {
;ARM: ldrh r{{[0-9]+}}, [{{.*}}], #2 ;ARM: ldrh r{{[0-9]+}}, [{{.*}}], #2
;ARM: ldrb r{{[0-9]+}}, [{{.*}}], #1 ;ARM: ldrb r{{[0-9]+}}, [{{.*}}], #1
@ -208,11 +208,11 @@ declare void @use_N(%struct.N* byval)
call void @use_B(%struct.B* byval align 2 %a) call void @use_B(%struct.B* byval align 2 %a)
ret void ret void
} }
;ARM-LABEL: test_B_4: ;ARM-LABEL: <test_B_4>:
;THUMB2-LABEL: test_B_4: ;THUMB2-LABEL: <test_B_4>:
;NO_NEON-LABEL:test_B_4: ;NO_NEON-LABEL:<test_B_4>:
;THUMB1-LABEL: test_B_4: ;THUMB1-LABEL: <test_B_4>:
;T1POST-LABEL: test_B_4: ;T1POST-LABEL: <test_B_4>:
define void @test_B_4() { define void @test_B_4() {
;ARM: ldr r{{[0-9]+}}, [{{.*}}], #4 ;ARM: ldr r{{[0-9]+}}, [{{.*}}], #4
;ARM: ldrb r{{[0-9]+}}, [{{.*}}], #1 ;ARM: ldrb r{{[0-9]+}}, [{{.*}}], #1
@ -233,11 +233,11 @@ declare void @use_N(%struct.N* byval)
call void @use_B(%struct.B* byval align 4 %a) call void @use_B(%struct.B* byval align 4 %a)
ret void ret void
} }
;ARM-LABEL: test_B_8: ;ARM-LABEL: <test_B_8>:
;THUMB2-LABEL: test_B_8: ;THUMB2-LABEL: <test_B_8>:
;NO_NEON-LABEL:test_B_8: ;NO_NEON-LABEL:<test_B_8>:
;THUMB1-LABEL: test_B_8: ;THUMB1-LABEL: <test_B_8>:
;T1POST-LABEL: test_B_8: ;T1POST-LABEL: <test_B_8>:
define void @test_B_8() { define void @test_B_8() {
;ARM: vld1.32 {d{{[0-9]+}}}, [{{.*}}]! ;ARM: vld1.32 {d{{[0-9]+}}}, [{{.*}}]!
;ARM: ldrb r{{[0-9]+}}, [{{.*}}], #1 ;ARM: ldrb r{{[0-9]+}}, [{{.*}}], #1
@ -259,11 +259,11 @@ declare void @use_N(%struct.N* byval)
call void @use_B(%struct.B* byval align 8 %a) call void @use_B(%struct.B* byval align 8 %a)
ret void ret void
} }
;ARM-LABEL: test_B_16: ;ARM-LABEL: <test_B_16>:
;THUMB2-LABEL: test_B_16: ;THUMB2-LABEL: <test_B_16>:
;NO_NEON-LABEL:test_B_16: ;NO_NEON-LABEL:<test_B_16>:
;THUMB1-LABEL: test_B_16: ;THUMB1-LABEL: <test_B_16>:
;T1POST-LABEL: test_B_16: ;T1POST-LABEL: <test_B_16>:
define void @test_B_16() { define void @test_B_16() {
;ARM: vld1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [{{.*}}]! ;ARM: vld1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [{{.*}}]!
;ARM: ldrb r{{[0-9]+}}, [{{.*}}], #1 ;ARM: ldrb r{{[0-9]+}}, [{{.*}}], #1
@ -285,11 +285,11 @@ declare void @use_N(%struct.N* byval)
call void @use_B(%struct.B* byval align 16 %a) call void @use_B(%struct.B* byval align 16 %a)
ret void ret void
} }
;ARM-LABEL: test_C_1: ;ARM-LABEL: <test_C_1>:
;THUMB2-LABEL: test_C_1: ;THUMB2-LABEL: <test_C_1>:
;NO_NEON-LABEL:test_C_1: ;NO_NEON-LABEL:<test_C_1>:
;THUMB1-LABEL: test_C_1: ;THUMB1-LABEL: <test_C_1>:
;T1POST-LABEL: test_C_1: ;T1POST-LABEL: <test_C_1>:
define void @test_C_1() { define void @test_C_1() {
;ARM: ldrb r{{[0-9]+}}, [{{.*}}], #1 ;ARM: ldrb r{{[0-9]+}}, [{{.*}}], #1
@ -306,11 +306,11 @@ declare void @use_N(%struct.N* byval)
call void @use_C(%struct.C* byval align 1 %a) call void @use_C(%struct.C* byval align 1 %a)
ret void ret void
} }
;ARM-LABEL: test_C_2: ;ARM-LABEL: <test_C_2>:
;THUMB2-LABEL: test_C_2: ;THUMB2-LABEL: <test_C_2>:
;NO_NEON-LABEL:test_C_2: ;NO_NEON-LABEL:<test_C_2>:
;THUMB1-LABEL: test_C_2: ;THUMB1-LABEL: <test_C_2>:
;T1POST-LABEL: test_C_2: ;T1POST-LABEL: <test_C_2>:
define void @test_C_2() { define void @test_C_2() {
;ARM: ldrh r{{[0-9]+}}, [{{.*}}], #2 ;ARM: ldrh r{{[0-9]+}}, [{{.*}}], #2
;ARM: ldrb r{{[0-9]+}}, [{{.*}}], #1 ;ARM: ldrb r{{[0-9]+}}, [{{.*}}], #1
@ -331,11 +331,11 @@ declare void @use_N(%struct.N* byval)
call void @use_C(%struct.C* byval align 2 %a) call void @use_C(%struct.C* byval align 2 %a)
ret void ret void
} }
;ARM-LABEL: test_C_4: ;ARM-LABEL: <test_C_4>:
;THUMB2-LABEL: test_C_4: ;THUMB2-LABEL: <test_C_4>:
;NO_NEON-LABEL:test_C_4: ;NO_NEON-LABEL:<test_C_4>:
;THUMB1-LABEL: test_C_4: ;THUMB1-LABEL: <test_C_4>:
;T1POST-LABEL: test_C_4: ;T1POST-LABEL: <test_C_4>:
define void @test_C_4() { define void @test_C_4() {
;ARM: ldr r{{[0-9]+}}, [{{.*}}], #4 ;ARM: ldr r{{[0-9]+}}, [{{.*}}], #4
;ARM: ldrb r{{[0-9]+}}, [{{.*}}], #1 ;ARM: ldrb r{{[0-9]+}}, [{{.*}}], #1
@ -357,11 +357,11 @@ declare void @use_N(%struct.N* byval)
call void @use_C(%struct.C* byval align 4 %a) call void @use_C(%struct.C* byval align 4 %a)
ret void ret void
} }
;ARM-LABEL: test_C_8: ;ARM-LABEL: <test_C_8>:
;THUMB2-LABEL: test_C_8: ;THUMB2-LABEL: <test_C_8>:
;NO_NEON-LABEL:test_C_8: ;NO_NEON-LABEL:<test_C_8>:
;THUMB1-LABEL: test_C_8: ;THUMB1-LABEL: <test_C_8>:
;T1POST-LABEL: test_C_8: ;T1POST-LABEL: <test_C_8>:
define void @test_C_8() { define void @test_C_8() {
;ARM: vld1.32 {d{{[0-9]+}}}, [{{.*}}]! ;ARM: vld1.32 {d{{[0-9]+}}}, [{{.*}}]!
;ARM: ldrb r{{[0-9]+}}, [{{.*}}], #1 ;ARM: ldrb r{{[0-9]+}}, [{{.*}}], #1
@ -384,11 +384,11 @@ declare void @use_N(%struct.N* byval)
call void @use_C(%struct.C* byval align 8 %a) call void @use_C(%struct.C* byval align 8 %a)
ret void ret void
} }
;ARM-LABEL: test_C_16: ;ARM-LABEL: <test_C_16>:
;THUMB2-LABEL: test_C_16: ;THUMB2-LABEL: <test_C_16>:
;NO_NEON-LABEL:test_C_16: ;NO_NEON-LABEL:<test_C_16>:
;THUMB1-LABEL: test_C_16: ;THUMB1-LABEL: <test_C_16>:
;T1POST-LABEL: test_C_16: ;T1POST-LABEL: <test_C_16>:
define void @test_C_16() { define void @test_C_16() {
;ARM: vld1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [{{.*}}]! ;ARM: vld1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [{{.*}}]!
;ARM: ldrb r{{[0-9]+}}, [{{.*}}], #1 ;ARM: ldrb r{{[0-9]+}}, [{{.*}}], #1
@ -411,11 +411,11 @@ declare void @use_N(%struct.N* byval)
call void @use_C(%struct.C* byval align 16 %a) call void @use_C(%struct.C* byval align 16 %a)
ret void ret void
} }
;ARM-LABEL: test_D_1: ;ARM-LABEL: <test_D_1>:
;THUMB2-LABEL: test_D_1: ;THUMB2-LABEL: <test_D_1>:
;NO_NEON-LABEL:test_D_1: ;NO_NEON-LABEL:<test_D_1>:
;THUMB1-LABEL: test_D_1: ;THUMB1-LABEL: <test_D_1>:
;T1POST-LABEL: test_D_1: ;T1POST-LABEL: <test_D_1>:
define void @test_D_1() { define void @test_D_1() {
;ARM: ldrb r{{[0-9]+}}, [{{.*}}], #1 ;ARM: ldrb r{{[0-9]+}}, [{{.*}}], #1
;ARM: bne ;ARM: bne
@ -436,11 +436,11 @@ declare void @use_N(%struct.N* byval)
call void @use_D(%struct.D* byval align 1 %a) call void @use_D(%struct.D* byval align 1 %a)
ret void ret void
} }
;ARM-LABEL: test_D_2: ;ARM-LABEL: <test_D_2>:
;THUMB2-LABEL: test_D_2: ;THUMB2-LABEL: <test_D_2>:
;NO_NEON-LABEL:test_D_2: ;NO_NEON-LABEL:<test_D_2>:
;THUMB1-LABEL: test_D_2: ;THUMB1-LABEL: <test_D_2>:
;T1POST-LABEL: test_D_2: ;T1POST-LABEL: <test_D_2>:
define void @test_D_2() { define void @test_D_2() {
;ARM: ldrh r{{[0-9]+}}, [{{.*}}], #2 ;ARM: ldrh r{{[0-9]+}}, [{{.*}}], #2
;ARM: bne ;ARM: bne
@ -461,11 +461,11 @@ declare void @use_N(%struct.N* byval)
call void @use_D(%struct.D* byval align 2 %a) call void @use_D(%struct.D* byval align 2 %a)
ret void ret void
} }
;ARM-LABEL: test_D_4: ;ARM-LABEL: <test_D_4>:
;THUMB2-LABEL: test_D_4: ;THUMB2-LABEL: <test_D_4>:
;NO_NEON-LABEL:test_D_4: ;NO_NEON-LABEL:<test_D_4>:
;THUMB1-LABEL: test_D_4: ;THUMB1-LABEL: <test_D_4>:
;T1POST-LABEL: test_D_4: ;T1POST-LABEL: <test_D_4>:
define void @test_D_4() { define void @test_D_4() {
;ARM: ldr r{{[0-9]+}}, [{{.*}}], #4 ;ARM: ldr r{{[0-9]+}}, [{{.*}}], #4
;ARM: bne ;ARM: bne
@ -486,11 +486,11 @@ declare void @use_N(%struct.N* byval)
call void @use_D(%struct.D* byval align 4 %a) call void @use_D(%struct.D* byval align 4 %a)
ret void ret void
} }
;ARM-LABEL: test_D_8: ;ARM-LABEL: <test_D_8>:
;THUMB2-LABEL: test_D_8: ;THUMB2-LABEL: <test_D_8>:
;NO_NEON-LABEL:test_D_8: ;NO_NEON-LABEL:<test_D_8>:
;THUMB1-LABEL: test_D_8: ;THUMB1-LABEL: <test_D_8>:
;T1POST-LABEL: test_D_8: ;T1POST-LABEL: <test_D_8>:
define void @test_D_8() { define void @test_D_8() {
;ARM: vld1.32 {d{{[0-9]+}}}, [{{.*}}]! ;ARM: vld1.32 {d{{[0-9]+}}}, [{{.*}}]!
;ARM: bne ;ARM: bne
@ -512,11 +512,11 @@ declare void @use_N(%struct.N* byval)
call void @use_D(%struct.D* byval align 8 %a) call void @use_D(%struct.D* byval align 8 %a)
ret void ret void
} }
;ARM-LABEL: test_D_16: ;ARM-LABEL: <test_D_16>:
;THUMB2-LABEL: test_D_16: ;THUMB2-LABEL: <test_D_16>:
;NO_NEON-LABEL:test_D_16: ;NO_NEON-LABEL:<test_D_16>:
;THUMB1-LABEL: test_D_16: ;THUMB1-LABEL: <test_D_16>:
;T1POST-LABEL: test_D_16: ;T1POST-LABEL: <test_D_16>:
define void @test_D_16() { define void @test_D_16() {
;ARM: vld1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [{{.*}}]! ;ARM: vld1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [{{.*}}]!
;ARM: bne ;ARM: bne
@ -538,11 +538,11 @@ declare void @use_N(%struct.N* byval)
call void @use_D(%struct.D* byval align 16 %a) call void @use_D(%struct.D* byval align 16 %a)
ret void ret void
} }
;ARM-LABEL: test_E_1: ;ARM-LABEL: <test_E_1>:
;THUMB2-LABEL: test_E_1: ;THUMB2-LABEL: <test_E_1>:
;NO_NEON-LABEL:test_E_1: ;NO_NEON-LABEL:<test_E_1>:
;THUMB1-LABEL: test_E_1: ;THUMB1-LABEL: <test_E_1>:
;T1POST-LABEL: test_E_1: ;T1POST-LABEL: <test_E_1>:
define void @test_E_1() { define void @test_E_1() {
;ARM: ldrb r{{[0-9]+}}, [{{.*}}], #1 ;ARM: ldrb r{{[0-9]+}}, [{{.*}}], #1
;ARM: bne ;ARM: bne
@ -563,11 +563,11 @@ declare void @use_N(%struct.N* byval)
call void @use_E(%struct.E* byval align 1 %a) call void @use_E(%struct.E* byval align 1 %a)
ret void ret void
} }
;ARM-LABEL: test_E_2: ;ARM-LABEL: <test_E_2>:
;THUMB2-LABEL: test_E_2: ;THUMB2-LABEL: <test_E_2>:
;NO_NEON-LABEL:test_E_2: ;NO_NEON-LABEL:<test_E_2>:
;THUMB1-LABEL: test_E_2: ;THUMB1-LABEL: <test_E_2>:
;T1POST-LABEL: test_E_2: ;T1POST-LABEL: <test_E_2>:
define void @test_E_2() { define void @test_E_2() {
;ARM: ldrh r{{[0-9]+}}, [{{.*}}], #2 ;ARM: ldrh r{{[0-9]+}}, [{{.*}}], #2
;ARM: bne ;ARM: bne
@ -592,11 +592,11 @@ declare void @use_N(%struct.N* byval)
call void @use_E(%struct.E* byval align 2 %a) call void @use_E(%struct.E* byval align 2 %a)
ret void ret void
} }
;ARM-LABEL: test_E_4: ;ARM-LABEL: <test_E_4>:
;THUMB2-LABEL: test_E_4: ;THUMB2-LABEL: <test_E_4>:
;NO_NEON-LABEL:test_E_4: ;NO_NEON-LABEL:<test_E_4>:
;THUMB1-LABEL: test_E_4: ;THUMB1-LABEL: <test_E_4>:
;T1POST-LABEL: test_E_4: ;T1POST-LABEL: <test_E_4>:
define void @test_E_4() { define void @test_E_4() {
;ARM: ldr r{{[0-9]+}}, [{{.*}}], #4 ;ARM: ldr r{{[0-9]+}}, [{{.*}}], #4
;ARM: bne ;ARM: bne
@ -621,11 +621,11 @@ declare void @use_N(%struct.N* byval)
call void @use_E(%struct.E* byval align 4 %a) call void @use_E(%struct.E* byval align 4 %a)
ret void ret void
} }
;ARM-LABEL: test_E_8: ;ARM-LABEL: <test_E_8>:
;THUMB2-LABEL: test_E_8: ;THUMB2-LABEL: <test_E_8>:
;NO_NEON-LABEL:test_E_8: ;NO_NEON-LABEL:<test_E_8>:
;THUMB1-LABEL: test_E_8: ;THUMB1-LABEL: <test_E_8>:
;T1POST-LABEL: test_E_8: ;T1POST-LABEL: <test_E_8>:
define void @test_E_8() { define void @test_E_8() {
;ARM: vld1.32 {d{{[0-9]+}}}, [{{.*}}]! ;ARM: vld1.32 {d{{[0-9]+}}}, [{{.*}}]!
;ARM: bne ;ARM: bne
@ -651,11 +651,11 @@ declare void @use_N(%struct.N* byval)
call void @use_E(%struct.E* byval align 8 %a) call void @use_E(%struct.E* byval align 8 %a)
ret void ret void
} }
;ARM-LABEL: test_E_16: ;ARM-LABEL: <test_E_16>:
;THUMB2-LABEL: test_E_16: ;THUMB2-LABEL: <test_E_16>:
;NO_NEON-LABEL:test_E_16: ;NO_NEON-LABEL:<test_E_16>:
;THUMB1-LABEL: test_E_16: ;THUMB1-LABEL: <test_E_16>:
;T1POST-LABEL: test_E_16: ;T1POST-LABEL: <test_E_16>:
define void @test_E_16() { define void @test_E_16() {
;ARM: vld1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [{{.*}}]! ;ARM: vld1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [{{.*}}]!
;ARM: bne ;ARM: bne
@ -681,11 +681,11 @@ declare void @use_N(%struct.N* byval)
call void @use_E(%struct.E* byval align 16 %a) call void @use_E(%struct.E* byval align 16 %a)
ret void ret void
} }
;ARM-LABEL: test_F_1: ;ARM-LABEL: <test_F_1>:
;THUMB2-LABEL: test_F_1: ;THUMB2-LABEL: <test_F_1>:
;NO_NEON-LABEL:test_F_1: ;NO_NEON-LABEL:<test_F_1>:
;THUMB1-LABEL: test_F_1: ;THUMB1-LABEL: <test_F_1>:
;T1POST-LABEL: test_F_1: ;T1POST-LABEL: <test_F_1>:
define void @test_F_1() { define void @test_F_1() {
;ARM: ldrb r{{[0-9]+}}, [{{.*}}], #1 ;ARM: ldrb r{{[0-9]+}}, [{{.*}}], #1
;ARM: bne ;ARM: bne
@ -706,11 +706,11 @@ declare void @use_N(%struct.N* byval)
call void @use_F(%struct.F* byval align 1 %a) call void @use_F(%struct.F* byval align 1 %a)
ret void ret void
} }
;ARM-LABEL: test_F_2: ;ARM-LABEL: <test_F_2>:
;THUMB2-LABEL: test_F_2: ;THUMB2-LABEL: <test_F_2>:
;NO_NEON-LABEL:test_F_2: ;NO_NEON-LABEL:<test_F_2>:
;THUMB1-LABEL: test_F_2: ;THUMB1-LABEL: <test_F_2>:
;T1POST-LABEL: test_F_2: ;T1POST-LABEL: <test_F_2>:
define void @test_F_2() { define void @test_F_2() {
;ARM: ldrh r{{[0-9]+}}, [{{.*}}], #2 ;ARM: ldrh r{{[0-9]+}}, [{{.*}}], #2
;ARM: bne ;ARM: bne
@ -735,11 +735,11 @@ declare void @use_N(%struct.N* byval)
call void @use_F(%struct.F* byval align 2 %a) call void @use_F(%struct.F* byval align 2 %a)
ret void ret void
} }
;ARM-LABEL: test_F_4: ;ARM-LABEL: <test_F_4>:
;THUMB2-LABEL: test_F_4: ;THUMB2-LABEL: <test_F_4>:
;NO_NEON-LABEL:test_F_4: ;NO_NEON-LABEL:<test_F_4>:
;THUMB1-LABEL: test_F_4: ;THUMB1-LABEL: <test_F_4>:
;T1POST-LABEL: test_F_4: ;T1POST-LABEL: <test_F_4>:
define void @test_F_4() { define void @test_F_4() {
;ARM: ldr r{{[0-9]+}}, [{{.*}}], #4 ;ARM: ldr r{{[0-9]+}}, [{{.*}}], #4
;ARM: bne ;ARM: bne
@ -765,11 +765,11 @@ declare void @use_N(%struct.N* byval)
call void @use_F(%struct.F* byval align 4 %a) call void @use_F(%struct.F* byval align 4 %a)
ret void ret void
} }
;ARM-LABEL: test_F_8: ;ARM-LABEL: <test_F_8>:
;THUMB2-LABEL: test_F_8: ;THUMB2-LABEL: <test_F_8>:
;NO_NEON-LABEL:test_F_8: ;NO_NEON-LABEL:<test_F_8>:
;THUMB1-LABEL: test_F_8: ;THUMB1-LABEL: <test_F_8>:
;T1POST-LABEL: test_F_8: ;T1POST-LABEL: <test_F_8>:
define void @test_F_8() { define void @test_F_8() {
;ARM: vld1.32 {d{{[0-9]+}}}, [{{.*}}]! ;ARM: vld1.32 {d{{[0-9]+}}}, [{{.*}}]!
;ARM: bne ;ARM: bne
@ -796,11 +796,11 @@ declare void @use_N(%struct.N* byval)
call void @use_F(%struct.F* byval align 8 %a) call void @use_F(%struct.F* byval align 8 %a)
ret void ret void
} }
;ARM-LABEL: test_F_16: ;ARM-LABEL: <test_F_16>:
;THUMB2-LABEL: test_F_16: ;THUMB2-LABEL: <test_F_16>:
;NO_NEON-LABEL:test_F_16: ;NO_NEON-LABEL:<test_F_16>:
;THUMB1-LABEL: test_F_16: ;THUMB1-LABEL: <test_F_16>:
;T1POST-LABEL: test_F_16: ;T1POST-LABEL: <test_F_16>:
define void @test_F_16() { define void @test_F_16() {
;ARM: vld1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [{{.*}}]! ;ARM: vld1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [{{.*}}]!
;ARM: bne ;ARM: bne
@ -827,11 +827,11 @@ declare void @use_N(%struct.N* byval)
call void @use_F(%struct.F* byval align 16 %a) call void @use_F(%struct.F* byval align 16 %a)
ret void ret void
} }
;ARM-LABEL: test_G_1: ;ARM-LABEL: <test_G_1>:
;THUMB2-LABEL: test_G_1: ;THUMB2-LABEL: <test_G_1>:
;NO_NEON-LABEL:test_G_1: ;NO_NEON-LABEL:<test_G_1>:
;THUMB1-LABEL: test_G_1: ;THUMB1-LABEL: <test_G_1>:
;T1POST-LABEL: test_G_1: ;T1POST-LABEL: <test_G_1>:
define void @test_G_1() { define void @test_G_1() {
;ARM: ldrb r{{[0-9]+}}, [{{.*}}], #1 ;ARM: ldrb r{{[0-9]+}}, [{{.*}}], #1
@ -848,11 +848,11 @@ declare void @use_N(%struct.N* byval)
call void @use_G(%struct.G* byval align 1 %a) call void @use_G(%struct.G* byval align 1 %a)
ret void ret void
} }
;ARM-LABEL: test_G_2: ;ARM-LABEL: <test_G_2>:
;THUMB2-LABEL: test_G_2: ;THUMB2-LABEL: <test_G_2>:
;NO_NEON-LABEL:test_G_2: ;NO_NEON-LABEL:<test_G_2>:
;THUMB1-LABEL: test_G_2: ;THUMB1-LABEL: <test_G_2>:
;T1POST-LABEL: test_G_2: ;T1POST-LABEL: <test_G_2>:
define void @test_G_2() { define void @test_G_2() {
;ARM: ldrh r{{[0-9]+}}, [{{.*}}], #2 ;ARM: ldrh r{{[0-9]+}}, [{{.*}}], #2
@ -869,11 +869,11 @@ declare void @use_N(%struct.N* byval)
call void @use_G(%struct.G* byval align 2 %a) call void @use_G(%struct.G* byval align 2 %a)
ret void ret void
} }
;ARM-LABEL: test_G_4: ;ARM-LABEL: <test_G_4>:
;THUMB2-LABEL: test_G_4: ;THUMB2-LABEL: <test_G_4>:
;NO_NEON-LABEL:test_G_4: ;NO_NEON-LABEL:<test_G_4>:
;THUMB1-LABEL: test_G_4: ;THUMB1-LABEL: <test_G_4>:
;T1POST-LABEL: test_G_4: ;T1POST-LABEL: <test_G_4>:
define void @test_G_4() { define void @test_G_4() {
;ARM: ldr r{{[0-9]+}}, [{{.*}}], #4 ;ARM: ldr r{{[0-9]+}}, [{{.*}}], #4
@ -890,11 +890,11 @@ declare void @use_N(%struct.N* byval)
call void @use_G(%struct.G* byval align 4 %a) call void @use_G(%struct.G* byval align 4 %a)
ret void ret void
} }
;ARM-LABEL: test_G_8: ;ARM-LABEL: <test_G_8>:
;THUMB2-LABEL: test_G_8: ;THUMB2-LABEL: <test_G_8>:
;NO_NEON-LABEL:test_G_8: ;NO_NEON-LABEL:<test_G_8>:
;THUMB1-LABEL: test_G_8: ;THUMB1-LABEL: <test_G_8>:
;T1POST-LABEL: test_G_8: ;T1POST-LABEL: <test_G_8>:
define void @test_G_8() { define void @test_G_8() {
;ARM: vld1.32 {d{{[0-9]+}}}, [{{.*}}]! ;ARM: vld1.32 {d{{[0-9]+}}}, [{{.*}}]!
@ -912,11 +912,11 @@ declare void @use_N(%struct.N* byval)
call void @use_G(%struct.G* byval align 8 %a) call void @use_G(%struct.G* byval align 8 %a)
ret void ret void
} }
;ARM-LABEL: test_G_16: ;ARM-LABEL: <test_G_16>:
;THUMB2-LABEL: test_G_16: ;THUMB2-LABEL: <test_G_16>:
;NO_NEON-LABEL:test_G_16: ;NO_NEON-LABEL:<test_G_16>:
;THUMB1-LABEL: test_G_16: ;THUMB1-LABEL: <test_G_16>:
;T1POST-LABEL: test_G_16: ;T1POST-LABEL: <test_G_16>:
define void @test_G_16() { define void @test_G_16() {
;ARM: vld1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [{{.*}}]! ;ARM: vld1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [{{.*}}]!
@ -934,11 +934,11 @@ declare void @use_N(%struct.N* byval)
call void @use_G(%struct.G* byval align 16 %a) call void @use_G(%struct.G* byval align 16 %a)
ret void ret void
} }
;ARM-LABEL: test_H_1: ;ARM-LABEL: <test_H_1>:
;THUMB2-LABEL: test_H_1: ;THUMB2-LABEL: <test_H_1>:
;NO_NEON-LABEL:test_H_1: ;NO_NEON-LABEL:<test_H_1>:
;THUMB1-LABEL: test_H_1: ;THUMB1-LABEL: <test_H_1>:
;T1POST-LABEL: test_H_1: ;T1POST-LABEL: <test_H_1>:
define void @test_H_1() { define void @test_H_1() {
;ARM: ldrb r{{[0-9]+}}, [{{.*}}], #1 ;ARM: ldrb r{{[0-9]+}}, [{{.*}}], #1
@ -955,11 +955,11 @@ declare void @use_N(%struct.N* byval)
call void @use_H(%struct.H* byval align 1 %a) call void @use_H(%struct.H* byval align 1 %a)
ret void ret void
} }
;ARM-LABEL: test_H_2: ;ARM-LABEL: <test_H_2>:
;THUMB2-LABEL: test_H_2: ;THUMB2-LABEL: <test_H_2>:
;NO_NEON-LABEL:test_H_2: ;NO_NEON-LABEL:<test_H_2>:
;THUMB1-LABEL: test_H_2: ;THUMB1-LABEL: <test_H_2>:
;T1POST-LABEL: test_H_2: ;T1POST-LABEL: <test_H_2>:
define void @test_H_2() { define void @test_H_2() {
;ARM: ldrh r{{[0-9]+}}, [{{.*}}], #2 ;ARM: ldrh r{{[0-9]+}}, [{{.*}}], #2
@ -976,11 +976,11 @@ declare void @use_N(%struct.N* byval)
call void @use_H(%struct.H* byval align 2 %a) call void @use_H(%struct.H* byval align 2 %a)
ret void ret void
} }
;ARM-LABEL: test_H_4: ;ARM-LABEL: <test_H_4>:
;THUMB2-LABEL: test_H_4: ;THUMB2-LABEL: <test_H_4>:
;NO_NEON-LABEL:test_H_4: ;NO_NEON-LABEL:<test_H_4>:
;THUMB1-LABEL: test_H_4: ;THUMB1-LABEL: <test_H_4>:
;T1POST-LABEL: test_H_4: ;T1POST-LABEL: <test_H_4>:
define void @test_H_4() { define void @test_H_4() {
;ARM: ldr r{{[0-9]+}}, [{{.*}}], #4 ;ARM: ldr r{{[0-9]+}}, [{{.*}}], #4
@ -997,11 +997,11 @@ declare void @use_N(%struct.N* byval)
call void @use_H(%struct.H* byval align 4 %a) call void @use_H(%struct.H* byval align 4 %a)
ret void ret void
} }
;ARM-LABEL: test_H_8: ;ARM-LABEL: <test_H_8>:
;THUMB2-LABEL: test_H_8: ;THUMB2-LABEL: <test_H_8>:
;NO_NEON-LABEL:test_H_8: ;NO_NEON-LABEL:<test_H_8>:
;THUMB1-LABEL: test_H_8: ;THUMB1-LABEL: <test_H_8>:
;T1POST-LABEL: test_H_8: ;T1POST-LABEL: <test_H_8>:
define void @test_H_8() { define void @test_H_8() {
;ARM: vld1.32 {d{{[0-9]+}}}, [{{.*}}]! ;ARM: vld1.32 {d{{[0-9]+}}}, [{{.*}}]!
@ -1019,11 +1019,11 @@ declare void @use_N(%struct.N* byval)
call void @use_H(%struct.H* byval align 8 %a) call void @use_H(%struct.H* byval align 8 %a)
ret void ret void
} }
;ARM-LABEL: test_H_16: ;ARM-LABEL: <test_H_16>:
;THUMB2-LABEL: test_H_16: ;THUMB2-LABEL: <test_H_16>:
;NO_NEON-LABEL:test_H_16: ;NO_NEON-LABEL:<test_H_16>:
;THUMB1-LABEL: test_H_16: ;THUMB1-LABEL: <test_H_16>:
;T1POST-LABEL: test_H_16: ;T1POST-LABEL: <test_H_16>:
define void @test_H_16() { define void @test_H_16() {
;ARM: vld1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [{{.*}}]! ;ARM: vld1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [{{.*}}]!
@ -1041,11 +1041,11 @@ declare void @use_N(%struct.N* byval)
call void @use_H(%struct.H* byval align 16 %a) call void @use_H(%struct.H* byval align 16 %a)
ret void ret void
} }
;ARM-LABEL: test_I_1: ;ARM-LABEL: <test_I_1>:
;THUMB2-LABEL: test_I_1: ;THUMB2-LABEL: <test_I_1>:
;NO_NEON-LABEL:test_I_1: ;NO_NEON-LABEL:<test_I_1>:
;THUMB1-LABEL: test_I_1: ;THUMB1-LABEL: <test_I_1>:
;T1POST-LABEL: test_I_1: ;T1POST-LABEL: <test_I_1>:
define void @test_I_1() { define void @test_I_1() {
;ARM: ldrb r{{[0-9]+}}, [{{.*}}], #1 ;ARM: ldrb r{{[0-9]+}}, [{{.*}}], #1
@ -1062,11 +1062,11 @@ declare void @use_N(%struct.N* byval)
call void @use_I(%struct.I* byval align 1 %a) call void @use_I(%struct.I* byval align 1 %a)
ret void ret void
} }
;ARM-LABEL: test_I_2: ;ARM-LABEL: <test_I_2>:
;THUMB2-LABEL: test_I_2: ;THUMB2-LABEL: <test_I_2>:
;NO_NEON-LABEL:test_I_2: ;NO_NEON-LABEL:<test_I_2>:
;THUMB1-LABEL: test_I_2: ;THUMB1-LABEL: <test_I_2>:
;T1POST-LABEL: test_I_2: ;T1POST-LABEL: <test_I_2>:
define void @test_I_2() { define void @test_I_2() {
;ARM: ldrh r{{[0-9]+}}, [{{.*}}], #2 ;ARM: ldrh r{{[0-9]+}}, [{{.*}}], #2
@ -1083,11 +1083,11 @@ declare void @use_N(%struct.N* byval)
call void @use_I(%struct.I* byval align 2 %a) call void @use_I(%struct.I* byval align 2 %a)
ret void ret void
} }
;ARM-LABEL: test_I_4: ;ARM-LABEL: <test_I_4>:
;THUMB2-LABEL: test_I_4: ;THUMB2-LABEL: <test_I_4>:
;NO_NEON-LABEL:test_I_4: ;NO_NEON-LABEL:<test_I_4>:
;THUMB1-LABEL: test_I_4: ;THUMB1-LABEL: <test_I_4>:
;T1POST-LABEL: test_I_4: ;T1POST-LABEL: <test_I_4>:
define void @test_I_4() { define void @test_I_4() {
;ARM: ldr r{{[0-9]+}}, [{{.*}}], #4 ;ARM: ldr r{{[0-9]+}}, [{{.*}}], #4
@ -1104,11 +1104,11 @@ declare void @use_N(%struct.N* byval)
call void @use_I(%struct.I* byval align 4 %a) call void @use_I(%struct.I* byval align 4 %a)
ret void ret void
} }
;ARM-LABEL: test_I_8: ;ARM-LABEL: <test_I_8>:
;THUMB2-LABEL: test_I_8: ;THUMB2-LABEL: <test_I_8>:
;NO_NEON-LABEL:test_I_8: ;NO_NEON-LABEL:<test_I_8>:
;THUMB1-LABEL: test_I_8: ;THUMB1-LABEL: <test_I_8>:
;T1POST-LABEL: test_I_8: ;T1POST-LABEL: <test_I_8>:
define void @test_I_8() { define void @test_I_8() {
;ARM: vld1.32 {d{{[0-9]+}}}, [{{.*}}]! ;ARM: vld1.32 {d{{[0-9]+}}}, [{{.*}}]!
@ -1126,11 +1126,11 @@ declare void @use_N(%struct.N* byval)
call void @use_I(%struct.I* byval align 8 %a) call void @use_I(%struct.I* byval align 8 %a)
ret void ret void
} }
;ARM-LABEL: test_I_16: ;ARM-LABEL: <test_I_16>:
;THUMB2-LABEL: test_I_16: ;THUMB2-LABEL: <test_I_16>:
;NO_NEON-LABEL:test_I_16: ;NO_NEON-LABEL:<test_I_16>:
;THUMB1-LABEL: test_I_16: ;THUMB1-LABEL: <test_I_16>:
;T1POST-LABEL: test_I_16: ;T1POST-LABEL: <test_I_16>:
define void @test_I_16() { define void @test_I_16() {
;ARM: vld1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [{{.*}}]! ;ARM: vld1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [{{.*}}]!
@ -1148,11 +1148,11 @@ declare void @use_N(%struct.N* byval)
call void @use_I(%struct.I* byval align 16 %a) call void @use_I(%struct.I* byval align 16 %a)
ret void ret void
} }
;ARM-LABEL: test_J_1: ;ARM-LABEL: <test_J_1>:
;THUMB2-LABEL: test_J_1: ;THUMB2-LABEL: <test_J_1>:
;NO_NEON-LABEL:test_J_1: ;NO_NEON-LABEL:<test_J_1>:
;THUMB1-LABEL: test_J_1: ;THUMB1-LABEL: <test_J_1>:
;T1POST-LABEL: test_J_1: ;T1POST-LABEL: <test_J_1>:
define void @test_J_1() { define void @test_J_1() {
;ARM: ldrb r{{[0-9]+}}, [{{.*}}], #1 ;ARM: ldrb r{{[0-9]+}}, [{{.*}}], #1
;ARM: bne ;ARM: bne
@ -1173,11 +1173,11 @@ declare void @use_N(%struct.N* byval)
call void @use_J(%struct.J* byval align 1 %a) call void @use_J(%struct.J* byval align 1 %a)
ret void ret void
} }
;ARM-LABEL: test_J_2: ;ARM-LABEL: <test_J_2>:
;THUMB2-LABEL: test_J_2: ;THUMB2-LABEL: <test_J_2>:
;NO_NEON-LABEL:test_J_2: ;NO_NEON-LABEL:<test_J_2>:
;THUMB1-LABEL: test_J_2: ;THUMB1-LABEL: <test_J_2>:
;T1POST-LABEL: test_J_2: ;T1POST-LABEL: <test_J_2>:
define void @test_J_2() { define void @test_J_2() {
;ARM: ldrh r{{[0-9]+}}, [{{.*}}], #2 ;ARM: ldrh r{{[0-9]+}}, [{{.*}}], #2
;ARM: bne ;ARM: bne
@ -1198,11 +1198,11 @@ declare void @use_N(%struct.N* byval)
call void @use_J(%struct.J* byval align 2 %a) call void @use_J(%struct.J* byval align 2 %a)
ret void ret void
} }
;ARM-LABEL: test_J_4: ;ARM-LABEL: <test_J_4>:
;THUMB2-LABEL: test_J_4: ;THUMB2-LABEL: <test_J_4>:
;NO_NEON-LABEL:test_J_4: ;NO_NEON-LABEL:<test_J_4>:
;THUMB1-LABEL: test_J_4: ;THUMB1-LABEL: <test_J_4>:
;T1POST-LABEL: test_J_4: ;T1POST-LABEL: <test_J_4>:
define void @test_J_4() { define void @test_J_4() {
;ARM: ldr r{{[0-9]+}}, [{{.*}}], #4 ;ARM: ldr r{{[0-9]+}}, [{{.*}}], #4
;ARM: bne ;ARM: bne
@ -1223,11 +1223,11 @@ declare void @use_N(%struct.N* byval)
call void @use_J(%struct.J* byval align 4 %a) call void @use_J(%struct.J* byval align 4 %a)
ret void ret void
} }
;ARM-LABEL: test_J_8: ;ARM-LABEL: <test_J_8>:
;THUMB2-LABEL: test_J_8: ;THUMB2-LABEL: <test_J_8>:
;NO_NEON-LABEL:test_J_8: ;NO_NEON-LABEL:<test_J_8>:
;THUMB1-LABEL: test_J_8: ;THUMB1-LABEL: <test_J_8>:
;T1POST-LABEL: test_J_8: ;T1POST-LABEL: <test_J_8>:
define void @test_J_8() { define void @test_J_8() {
;ARM: vld1.32 {d{{[0-9]+}}}, [{{.*}}]! ;ARM: vld1.32 {d{{[0-9]+}}}, [{{.*}}]!
;ARM: bne ;ARM: bne
@ -1249,11 +1249,11 @@ declare void @use_N(%struct.N* byval)
call void @use_J(%struct.J* byval align 8 %a) call void @use_J(%struct.J* byval align 8 %a)
ret void ret void
} }
;ARM-LABEL: test_J_16: ;ARM-LABEL: <test_J_16>:
;THUMB2-LABEL: test_J_16: ;THUMB2-LABEL: <test_J_16>:
;NO_NEON-LABEL:test_J_16: ;NO_NEON-LABEL:<test_J_16>:
;THUMB1-LABEL: test_J_16: ;THUMB1-LABEL: <test_J_16>:
;T1POST-LABEL: test_J_16: ;T1POST-LABEL: <test_J_16>:
define void @test_J_16() { define void @test_J_16() {
;ARM: vld1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [{{.*}}]! ;ARM: vld1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [{{.*}}]!
;ARM: bne ;ARM: bne
@ -1275,11 +1275,11 @@ declare void @use_N(%struct.N* byval)
call void @use_J(%struct.J* byval align 16 %a) call void @use_J(%struct.J* byval align 16 %a)
ret void ret void
} }
;ARM-LABEL: test_K_1: ;ARM-LABEL: <test_K_1>:
;THUMB2-LABEL: test_K_1: ;THUMB2-LABEL: <test_K_1>:
;NO_NEON-LABEL:test_K_1: ;NO_NEON-LABEL:<test_K_1>:
;THUMB1-LABEL: test_K_1: ;THUMB1-LABEL: <test_K_1>:
;T1POST-LABEL: test_K_1: ;T1POST-LABEL: <test_K_1>:
define void @test_K_1() { define void @test_K_1() {
;ARM: ldrb r{{[0-9]+}}, [{{.*}}], #1 ;ARM: ldrb r{{[0-9]+}}, [{{.*}}], #1
;ARM: bne ;ARM: bne
@ -1300,11 +1300,11 @@ declare void @use_N(%struct.N* byval)
call void @use_K(%struct.K* byval align 1 %a) call void @use_K(%struct.K* byval align 1 %a)
ret void ret void
} }
;ARM-LABEL: test_K_2: ;ARM-LABEL: <test_K_2>:
;THUMB2-LABEL: test_K_2: ;THUMB2-LABEL: <test_K_2>:
;NO_NEON-LABEL:test_K_2: ;NO_NEON-LABEL:<test_K_2>:
;THUMB1-LABEL: test_K_2: ;THUMB1-LABEL: <test_K_2>:
;T1POST-LABEL: test_K_2: ;T1POST-LABEL: <test_K_2>:
define void @test_K_2() { define void @test_K_2() {
;ARM: ldrh r{{[0-9]+}}, [{{.*}}], #2 ;ARM: ldrh r{{[0-9]+}}, [{{.*}}], #2
;ARM: bne ;ARM: bne
@ -1325,11 +1325,11 @@ declare void @use_N(%struct.N* byval)
call void @use_K(%struct.K* byval align 2 %a) call void @use_K(%struct.K* byval align 2 %a)
ret void ret void
} }
;ARM-LABEL: test_K_4: ;ARM-LABEL: <test_K_4>:
;THUMB2-LABEL: test_K_4: ;THUMB2-LABEL: <test_K_4>:
;NO_NEON-LABEL:test_K_4: ;NO_NEON-LABEL:<test_K_4>:
;THUMB1-LABEL: test_K_4: ;THUMB1-LABEL: <test_K_4>:
;T1POST-LABEL: test_K_4: ;T1POST-LABEL: <test_K_4>:
define void @test_K_4() { define void @test_K_4() {
;ARM: ldr r{{[0-9]+}}, [{{.*}}], #4 ;ARM: ldr r{{[0-9]+}}, [{{.*}}], #4
;ARM: bne ;ARM: bne
@ -1350,11 +1350,11 @@ declare void @use_N(%struct.N* byval)
call void @use_K(%struct.K* byval align 4 %a) call void @use_K(%struct.K* byval align 4 %a)
ret void ret void
} }
;ARM-LABEL: test_K_8: ;ARM-LABEL: <test_K_8>:
;THUMB2-LABEL: test_K_8: ;THUMB2-LABEL: <test_K_8>:
;NO_NEON-LABEL:test_K_8: ;NO_NEON-LABEL:<test_K_8>:
;THUMB1-LABEL: test_K_8: ;THUMB1-LABEL: <test_K_8>:
;T1POST-LABEL: test_K_8: ;T1POST-LABEL: <test_K_8>:
define void @test_K_8() { define void @test_K_8() {
;ARM: vld1.32 {d{{[0-9]+}}}, [{{.*}}]! ;ARM: vld1.32 {d{{[0-9]+}}}, [{{.*}}]!
;ARM: bne ;ARM: bne
@ -1376,11 +1376,11 @@ declare void @use_N(%struct.N* byval)
call void @use_K(%struct.K* byval align 8 %a) call void @use_K(%struct.K* byval align 8 %a)
ret void ret void
} }
;ARM-LABEL: test_K_16: ;ARM-LABEL: <test_K_16>:
;THUMB2-LABEL: test_K_16: ;THUMB2-LABEL: <test_K_16>:
;NO_NEON-LABEL:test_K_16: ;NO_NEON-LABEL:<test_K_16>:
;THUMB1-LABEL: test_K_16: ;THUMB1-LABEL: <test_K_16>:
;T1POST-LABEL: test_K_16: ;T1POST-LABEL: <test_K_16>:
define void @test_K_16() { define void @test_K_16() {
;ARM: vld1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [{{.*}}]! ;ARM: vld1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [{{.*}}]!
;ARM: bne ;ARM: bne
@ -1402,11 +1402,11 @@ declare void @use_N(%struct.N* byval)
call void @use_K(%struct.K* byval align 16 %a) call void @use_K(%struct.K* byval align 16 %a)
ret void ret void
} }
;ARM-LABEL: test_L_1: ;ARM-LABEL: <test_L_1>:
;THUMB2-LABEL: test_L_1: ;THUMB2-LABEL: <test_L_1>:
;NO_NEON-LABEL:test_L_1: ;NO_NEON-LABEL:<test_L_1>:
;THUMB1-LABEL: test_L_1: ;THUMB1-LABEL: <test_L_1>:
;T1POST-LABEL: test_L_1: ;T1POST-LABEL: <test_L_1>:
define void @test_L_1() { define void @test_L_1() {
;ARM: ldrb r{{[0-9]+}}, [{{.*}}], #1 ;ARM: ldrb r{{[0-9]+}}, [{{.*}}], #1
;ARM: bne ;ARM: bne
@ -1427,11 +1427,11 @@ declare void @use_N(%struct.N* byval)
call void @use_L(%struct.L* byval align 1 %a) call void @use_L(%struct.L* byval align 1 %a)
ret void ret void
} }
;ARM-LABEL: test_L_2: ;ARM-LABEL: <test_L_2>:
;THUMB2-LABEL: test_L_2: ;THUMB2-LABEL: <test_L_2>:
;NO_NEON-LABEL:test_L_2: ;NO_NEON-LABEL:<test_L_2>:
;THUMB1-LABEL: test_L_2: ;THUMB1-LABEL: <test_L_2>:
;T1POST-LABEL: test_L_2: ;T1POST-LABEL: <test_L_2>:
define void @test_L_2() { define void @test_L_2() {
;ARM: ldrh r{{[0-9]+}}, [{{.*}}], #2 ;ARM: ldrh r{{[0-9]+}}, [{{.*}}], #2
;ARM: bne ;ARM: bne
@ -1452,11 +1452,11 @@ declare void @use_N(%struct.N* byval)
call void @use_L(%struct.L* byval align 2 %a) call void @use_L(%struct.L* byval align 2 %a)
ret void ret void
} }
;ARM-LABEL: test_L_4: ;ARM-LABEL: <test_L_4>:
;THUMB2-LABEL: test_L_4: ;THUMB2-LABEL: <test_L_4>:
;NO_NEON-LABEL:test_L_4: ;NO_NEON-LABEL:<test_L_4>:
;THUMB1-LABEL: test_L_4: ;THUMB1-LABEL: <test_L_4>:
;T1POST-LABEL: test_L_4: ;T1POST-LABEL: <test_L_4>:
define void @test_L_4() { define void @test_L_4() {
;ARM: ldr r{{[0-9]+}}, [{{.*}}], #4 ;ARM: ldr r{{[0-9]+}}, [{{.*}}], #4
;ARM: bne ;ARM: bne
@ -1477,11 +1477,11 @@ declare void @use_N(%struct.N* byval)
call void @use_L(%struct.L* byval align 4 %a) call void @use_L(%struct.L* byval align 4 %a)
ret void ret void
} }
;ARM-LABEL: test_L_8: ;ARM-LABEL: <test_L_8>:
;THUMB2-LABEL: test_L_8: ;THUMB2-LABEL: <test_L_8>:
;NO_NEON-LABEL:test_L_8: ;NO_NEON-LABEL:<test_L_8>:
;THUMB1-LABEL: test_L_8: ;THUMB1-LABEL: <test_L_8>:
;T1POST-LABEL: test_L_8: ;T1POST-LABEL: <test_L_8>:
define void @test_L_8() { define void @test_L_8() {
;ARM: vld1.32 {d{{[0-9]+}}}, [{{.*}}]! ;ARM: vld1.32 {d{{[0-9]+}}}, [{{.*}}]!
;ARM: bne ;ARM: bne
@ -1503,11 +1503,11 @@ declare void @use_N(%struct.N* byval)
call void @use_L(%struct.L* byval align 8 %a) call void @use_L(%struct.L* byval align 8 %a)
ret void ret void
} }
;ARM-LABEL: test_L_16: ;ARM-LABEL: <test_L_16>:
;THUMB2-LABEL: test_L_16: ;THUMB2-LABEL: <test_L_16>:
;NO_NEON-LABEL:test_L_16: ;NO_NEON-LABEL:<test_L_16>:
;THUMB1-LABEL: test_L_16: ;THUMB1-LABEL: <test_L_16>:
;T1POST-LABEL: test_L_16: ;T1POST-LABEL: <test_L_16>:
define void @test_L_16() { define void @test_L_16() {
;ARM: vld1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [{{.*}}]! ;ARM: vld1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [{{.*}}]!
;ARM: bne ;ARM: bne
@ -1529,7 +1529,7 @@ declare void @use_N(%struct.N* byval)
call void @use_L(%struct.L* byval align 16 %a) call void @use_L(%struct.L* byval align 16 %a)
ret void ret void
} }
;V8MBASE-LABEL: test_M: ;V8MBASE-LABEL: <test_M>:
define void @test_M() { define void @test_M() {
;V8MBASE: ldrb r{{[0-9]+}}, {{\[}}[[BASE:r[0-9]+]]{{\]}} ;V8MBASE: ldrb r{{[0-9]+}}, {{\[}}[[BASE:r[0-9]+]]{{\]}}
@ -1540,7 +1540,7 @@ declare void @use_N(%struct.N* byval)
call void @use_M(%struct.M* byval align 1 %a) call void @use_M(%struct.M* byval align 1 %a)
ret void ret void
} }
;V8MBASE-LABEL: test_N: ;V8MBASE-LABEL: <test_N>:
define void @test_N() { define void @test_N() {
;V8MBASE: movw r{{[0-9]+}}, #{{[0-9]+}} ;V8MBASE: movw r{{[0-9]+}}, #{{[0-9]+}}

View File

@ -9,7 +9,7 @@
; rdar://8819685 ; rdar://8819685
define i8* @_foo() { define i8* @_foo() {
entry: entry:
; CHECK-LABEL: foo: ; CHECK-LABEL: __foo{{>?}}:
%size = alloca i32, align 4 %size = alloca i32, align 4
%0 = load i8*, i8** @__bar, align 4 %0 = load i8*, i8** @__bar, align 4
@ -46,7 +46,7 @@ declare i32 @_called_func(i8*, i32*) nounwind
; Simple variable ending up *at* sp. ; Simple variable ending up *at* sp.
define void @test_simple_var() { define void @test_simple_var() {
; CHECK-LABEL: test_simple_var: ; CHECK-LABEL: test_simple_var{{>?}}:
%addr32 = alloca i32 %addr32 = alloca i32
%addr8 = bitcast i32* %addr32 to i8* %addr8 = bitcast i32* %addr32 to i8*
@ -60,7 +60,7 @@ define void @test_simple_var() {
; Simple variable ending up at aligned offset from sp. ; Simple variable ending up at aligned offset from sp.
define void @test_local_var_addr_aligned() { define void @test_local_var_addr_aligned() {
; CHECK-LABEL: test_local_var_addr_aligned: ; CHECK-LABEL: test_local_var_addr_aligned{{>?}}:
%addr1.32 = alloca i32 %addr1.32 = alloca i32
%addr1 = bitcast i32* %addr1.32 to i8* %addr1 = bitcast i32* %addr1.32 to i8*
@ -81,7 +81,7 @@ define void @test_local_var_addr_aligned() {
; Simple variable ending up at aligned offset from sp. ; Simple variable ending up at aligned offset from sp.
define void @test_local_var_big_offset() { define void @test_local_var_big_offset() {
; CHECK-LABEL: test_local_var_big_offset: ; CHECK-LABEL: test_local_var_big_offset{{>?}}:
%addr1.32 = alloca i32, i32 257 %addr1.32 = alloca i32, i32 257
%addr1 = bitcast i32* %addr1.32 to i8* %addr1 = bitcast i32* %addr1.32 to i8*
%addr2.32 = alloca i32, i32 257 %addr2.32 = alloca i32, i32 257

View File

@ -20,5 +20,5 @@ define i32* @wrong-t2stmia-size-reduction(i32* %addr, i32 %val0, i32 %val1) mins
; Check that stm writes three registers. The bug caused one of registers (LR, ; Check that stm writes three registers. The bug caused one of registers (LR,
; which invalid for Thumb1 form of STMIA instruction) to be dropped. ; which invalid for Thumb1 form of STMIA instruction) to be dropped.
; CHECK-LABEL: wrong-t2stmia-size-reduction: ; CHECK-LABEL: <wrong-t2stmia-size-reduction>:
; CHECK: stm{{[^,]*}}, {{{.*,.*,.*}}} ; CHECK: stm{{[^,]*}}, {{{.*,.*,.*}}}

View File

@ -44,7 +44,7 @@ define i32 @test(i32, i32) local_unnamed_addr #0 {
%12 = shl nsw i32 %10, 2 %12 = shl nsw i32 %10, 2
br label %13 br label %13
; CHECK-LABEL: LBB0_2: ; CHECK-LABEL: <LBB0_2>:
; CHECK: r3 = 0 ll ; CHECK: r3 = 0 ll
; CHECK: r0 = *(u32 *)(r3 + 0) ; CHECK: r0 = *(u32 *)(r3 + 0)
; CHECK: r2 <<= 32 ; CHECK: r2 <<= 32
@ -56,14 +56,14 @@ define i32 @test(i32, i32) local_unnamed_addr #0 {
%14 = phi i32 [ %12, %11 ], [ %7, %4 ] %14 = phi i32 [ %12, %11 ], [ %7, %4 ]
store i32 %14, i32* @gbl, align 4 store i32 %14, i32* @gbl, align 4
br label %15 br label %15
; CHECK-LABEL: LBB0_4: ; CHECK-LABEL: <LBB0_4>:
; CHECK: r1 = 0 ll ; CHECK: r1 = 0 ll
; CHECK: *(u32 *)(r1 + 0) = r0 ; CHECK: *(u32 *)(r1 + 0) = r0
; <label>:15: ; preds = %8, %13 ; <label>:15: ; preds = %8, %13
%16 = phi i32 [ %14, %13 ], [ %10, %8 ] %16 = phi i32 [ %14, %13 ], [ %10, %8 ]
ret i32 %16 ret i32 %16
; CHECK-LABEL: LBB0_5: ; CHECK-LABEL: <LBB0_5>:
; CHECK: exit ; CHECK: exit
} }
attributes #0 = { norecurse nounwind } attributes #0 = { norecurse nounwind }

View File

@ -8,7 +8,7 @@
; } ; }
define i32 @test(i32, i32) local_unnamed_addr #0 { define i32 @test(i32, i32) local_unnamed_addr #0 {
; CHECK-LABEL: test: ; CHECK-LABEL: <test>:
%3 = icmp slt i32 %0, %1 %3 = icmp slt i32 %0, %1
br i1 %3, label %4, label %13 br i1 %3, label %4, label %13
@ -16,7 +16,7 @@ define i32 @test(i32, i32) local_unnamed_addr #0 {
br label %5 br label %5
; CHECK: if r4 s>= r3 goto +11 <LBB0_3> ; CHECK: if r4 s>= r3 goto +11 <LBB0_3>
; CHECK: r0 = 0 ; CHECK: r0 = 0
; CHECK-LABEL: LBB0_2: ; CHECK-LABEL: <LBB0_2>:
; <label>:5: ; preds = %4, %5 ; <label>:5: ; preds = %4, %5
%6 = phi i32 [ %9, %5 ], [ 0, %4 ] %6 = phi i32 [ %9, %5 ], [ 0, %4 ]
@ -33,7 +33,7 @@ define i32 @test(i32, i32) local_unnamed_addr #0 {
; <label>:13: ; preds = %5, %2 ; <label>:13: ; preds = %5, %2
%14 = phi i32 [ 0, %2 ], [ %9, %5 ] %14 = phi i32 [ 0, %2 ], [ %9, %5 ]
ret i32 %14 ret i32 %14
; CHECK-LABEL: LBB0_3: ; CHECK-LABEL: <LBB0_3>:
; CHECK: exit ; CHECK: exit
} }
attributes #0 = { norecurse nounwind readnone } attributes #0 = { norecurse nounwind readnone }

View File

@ -16,7 +16,7 @@
; Function Attrs: norecurse nounwind readnone ; Function Attrs: norecurse nounwind readnone
define dso_local i32 @func1(i32 %a) local_unnamed_addr #0 section "s1" !dbg !7 { define dso_local i32 @func1(i32 %a) local_unnamed_addr #0 section "s1" !dbg !7 {
entry: entry:
; CHECK: func1: ; CHECK: <func1>:
call void @llvm.dbg.value(metadata i32 %a, metadata !12, metadata !DIExpression()), !dbg !13 call void @llvm.dbg.value(metadata i32 %a, metadata !12, metadata !DIExpression()), !dbg !13
%mul = mul nsw i32 %a, %a, !dbg !14 %mul = mul nsw i32 %a, %a, !dbg !14
ret i32 %mul, !dbg !15 ret i32 %mul, !dbg !15
@ -26,7 +26,7 @@ entry:
; Function Attrs: norecurse nounwind readnone ; Function Attrs: norecurse nounwind readnone
define dso_local i32 @func2(i32 %a) local_unnamed_addr #0 section "s2" !dbg !16 { define dso_local i32 @func2(i32 %a) local_unnamed_addr #0 section "s2" !dbg !16 {
entry: entry:
; CHECK: func2: ; CHECK: <func2>:
call void @llvm.dbg.value(metadata i32 %a, metadata !18, metadata !DIExpression()), !dbg !19 call void @llvm.dbg.value(metadata i32 %a, metadata !18, metadata !DIExpression()), !dbg !19
%mul = mul nsw i32 %a, %a, !dbg !20 %mul = mul nsw i32 %a, %a, !dbg !20
%mul1 = mul nsw i32 %mul, %a, !dbg !21 %mul1 = mul nsw i32 %mul, %a, !dbg !21

View File

@ -1,6 +1,6 @@
; RUN: llc -march=hexagon -filetype=obj < %s -o - | llvm-objdump -d - | FileCheck %s ; RUN: llc -march=hexagon -filetype=obj < %s -o - | llvm-objdump -d - | FileCheck %s
; CHECK-LABEL: f0: ; CHECK-LABEL: <f0>:
; CHECK: r{{[1-9]}}:{{[0-9]}} = abs(r{{[1-9]}}:{{[0-9]}}) ; CHECK: r{{[1-9]}}:{{[0-9]}} = abs(r{{[1-9]}}:{{[0-9]}})
define double @f0(double %a0) #0 { define double @f0(double %a0) #0 {
b0: b0:
@ -15,7 +15,7 @@ b0:
declare i64 @llvm.hexagon.A2.absp(i64) #1 declare i64 @llvm.hexagon.A2.absp(i64) #1
; CHECK-LABEL: f1: ; CHECK-LABEL: <f1>:
; CHECK: r{{[1-9]}}:{{[0-9]}} = neg(r{{[1-9]}}:{{[0-9]}}) ; CHECK: r{{[1-9]}}:{{[0-9]}} = neg(r{{[1-9]}}:{{[0-9]}})
define double @f1(double %a0) #0 { define double @f1(double %a0) #0 {
b0: b0:
@ -30,7 +30,7 @@ b0:
declare i64 @llvm.hexagon.A2.negp(i64) #1 declare i64 @llvm.hexagon.A2.negp(i64) #1
; CHECK-LABEL: f2: ; CHECK-LABEL: <f2>:
; CHECK: r{{[1-9]}}:{{[0-9]}} = not(r{{[1-9]}}:{{[0-9]}}) ; CHECK: r{{[1-9]}}:{{[0-9]}} = not(r{{[1-9]}}:{{[0-9]}})
define double @f2(double %a0) #0 { define double @f2(double %a0) #0 {
b0: b0:
@ -45,7 +45,7 @@ b0:
declare i64 @llvm.hexagon.A2.notp(i64) #1 declare i64 @llvm.hexagon.A2.notp(i64) #1
; CHECK-LABEL: f3: ; CHECK-LABEL: <f3>:
; CHECK: r{{[1-9]}}:{{[0-9]}} = interleave(r{{[1-9]}}:{{[0-9]}}) ; CHECK: r{{[1-9]}}:{{[0-9]}} = interleave(r{{[1-9]}}:{{[0-9]}})
define double @f3(double %a0) #0 { define double @f3(double %a0) #0 {
b0: b0:
@ -60,7 +60,7 @@ b0:
declare i64 @llvm.hexagon.S2.interleave(i64) #1 declare i64 @llvm.hexagon.S2.interleave(i64) #1
; CHECK-LABEL: f4: ; CHECK-LABEL: <f4>:
; CHECK: r{{[1-9]}}:{{[0-9]}} = deinterleave(r{{[1-9]}}:{{[0-9]}}) ; CHECK: r{{[1-9]}}:{{[0-9]}} = deinterleave(r{{[1-9]}}:{{[0-9]}})
define double @f4(double %a0) #0 { define double @f4(double %a0) #0 {
b0: b0:
@ -75,7 +75,7 @@ b0:
declare i64 @llvm.hexagon.S2.deinterleave(i64) #1 declare i64 @llvm.hexagon.S2.deinterleave(i64) #1
; CHECK-LABEL: f5: ; CHECK-LABEL: <f5>:
; CHECK: r{{[1-9]}}:{{[0-9]}} = vconj(r{{[1-9]}}:{{[0-9]}}):sat ; CHECK: r{{[1-9]}}:{{[0-9]}} = vconj(r{{[1-9]}}:{{[0-9]}}):sat
define double @f5(double %a0) #0 { define double @f5(double %a0) #0 {
b0: b0:
@ -90,7 +90,7 @@ b0:
declare i64 @llvm.hexagon.A2.vconj(i64) #1 declare i64 @llvm.hexagon.A2.vconj(i64) #1
; CHECK-LABEL: f6: ; CHECK-LABEL: <f6>:
; CHECK: r{{[1-9]}}:{{[0-9]}} = vsathb(r{{[1-9]}}:{{[0-9]}}) ; CHECK: r{{[1-9]}}:{{[0-9]}} = vsathb(r{{[1-9]}}:{{[0-9]}})
define double @f6(double %a0) #0 { define double @f6(double %a0) #0 {
b0: b0:
@ -105,7 +105,7 @@ b0:
declare i64 @llvm.hexagon.S2.vsathb.nopack(i64) #1 declare i64 @llvm.hexagon.S2.vsathb.nopack(i64) #1
; CHECK-LABEL: f7: ; CHECK-LABEL: <f7>:
; CHECK: r{{[1-9]}}:{{[0-9]}} = vsathub(r{{[1-9]}}:{{[0-9]}}) ; CHECK: r{{[1-9]}}:{{[0-9]}} = vsathub(r{{[1-9]}}:{{[0-9]}})
define double @f7(double %a0) #0 { define double @f7(double %a0) #0 {
b0: b0:
@ -120,7 +120,7 @@ b0:
declare i64 @llvm.hexagon.S2.vsathub.nopack(i64) #1 declare i64 @llvm.hexagon.S2.vsathub.nopack(i64) #1
; CHECK-LABEL: f8: ; CHECK-LABEL: <f8>:
; CHECK: r{{[1-9]}}:{{[0-9]}} = vsatwh(r{{[1-9]}}:{{[0-9]}}) ; CHECK: r{{[1-9]}}:{{[0-9]}} = vsatwh(r{{[1-9]}}:{{[0-9]}})
define double @f8(double %a0) #0 { define double @f8(double %a0) #0 {
b0: b0:
@ -135,7 +135,7 @@ b0:
declare i64 @llvm.hexagon.S2.vsatwh.nopack(i64) #1 declare i64 @llvm.hexagon.S2.vsatwh.nopack(i64) #1
; CHECK-LABEL: f9: ; CHECK-LABEL: <f9>:
; CHECK: r{{[1-9]}}:{{[0-9]}} = vsatwuh(r{{[1-9]}}:{{[0-9]}}) ; CHECK: r{{[1-9]}}:{{[0-9]}} = vsatwuh(r{{[1-9]}}:{{[0-9]}})
define double @f9(double %a0) #0 { define double @f9(double %a0) #0 {
b0: b0:
@ -150,7 +150,7 @@ b0:
declare i64 @llvm.hexagon.S2.vsatwuh.nopack(i64) #1 declare i64 @llvm.hexagon.S2.vsatwuh.nopack(i64) #1
; CHECK-LABEL: f10: ; CHECK-LABEL: <f10>:
; CHECK: r{{[1-9]}}:{{[0-9]}} = asr(r{{[1-9]}}:{{[0-9]}},#1) ; CHECK: r{{[1-9]}}:{{[0-9]}} = asr(r{{[1-9]}}:{{[0-9]}},#1)
define double @f10(double %a0) #0 { define double @f10(double %a0) #0 {
b0: b0:
@ -165,7 +165,7 @@ b0:
declare i64 @llvm.hexagon.S2.asr.i.p(i64, i32) #1 declare i64 @llvm.hexagon.S2.asr.i.p(i64, i32) #1
; CHECK-LABEL: f11: ; CHECK-LABEL: <f11>:
; CHECK: r{{[1-9]}}:{{[0-9]}} = lsr(r{{[1-9]}}:{{[0-9]}},#1) ; CHECK: r{{[1-9]}}:{{[0-9]}} = lsr(r{{[1-9]}}:{{[0-9]}},#1)
define double @f11(double %a0) #0 { define double @f11(double %a0) #0 {
b0: b0:
@ -180,7 +180,7 @@ b0:
declare i64 @llvm.hexagon.S2.lsr.i.p(i64, i32) #1 declare i64 @llvm.hexagon.S2.lsr.i.p(i64, i32) #1
; CHECK-LABEL: f12: ; CHECK-LABEL: <f12>:
; CHECK: r{{[1-9]}}:{{[0-9]}} = asl(r{{[1-9]}}:{{[0-9]}},#1) ; CHECK: r{{[1-9]}}:{{[0-9]}} = asl(r{{[1-9]}}:{{[0-9]}},#1)
define double @f12(double %a0) #0 { define double @f12(double %a0) #0 {
b0: b0:
@ -195,7 +195,7 @@ b0:
declare i64 @llvm.hexagon.S2.asl.i.p(i64, i32) #1 declare i64 @llvm.hexagon.S2.asl.i.p(i64, i32) #1
; CHECK-LABEL: f13: ; CHECK-LABEL: <f13>:
; CHECK: r{{[1-9]}}:{{[0-9]}} = vabsh(r{{[1-9]}}:{{[0-9]}}) ; CHECK: r{{[1-9]}}:{{[0-9]}} = vabsh(r{{[1-9]}}:{{[0-9]}})
define double @f13(double %a0) #0 { define double @f13(double %a0) #0 {
b0: b0:
@ -210,7 +210,7 @@ b0:
declare i64 @llvm.hexagon.A2.vabsh(i64) #1 declare i64 @llvm.hexagon.A2.vabsh(i64) #1
; CHECK-LABEL: f14: ; CHECK-LABEL: <f14>:
; CHECK: r{{[1-9]}}:{{[0-9]}} = vabsh(r{{[1-9]}}:{{[0-9]}}):sat ; CHECK: r{{[1-9]}}:{{[0-9]}} = vabsh(r{{[1-9]}}:{{[0-9]}}):sat
define double @f14(double %a0) #0 { define double @f14(double %a0) #0 {
b0: b0:
@ -225,7 +225,7 @@ b0:
declare i64 @llvm.hexagon.A2.vabshsat(i64) #1 declare i64 @llvm.hexagon.A2.vabshsat(i64) #1
; CHECK-LABEL: f15: ; CHECK-LABEL: <f15>:
; CHECK: r{{[0-9]}}:{{[0-9]}} = vasrh(r{{[1-9]}}:{{[0-9]}},#1) ; CHECK: r{{[0-9]}}:{{[0-9]}} = vasrh(r{{[1-9]}}:{{[0-9]}},#1)
define double @f15(double %a0) #0 { define double @f15(double %a0) #0 {
b0: b0:
@ -240,7 +240,7 @@ b0:
declare i64 @llvm.hexagon.S2.asr.i.vh(i64, i32) #1 declare i64 @llvm.hexagon.S2.asr.i.vh(i64, i32) #1
; CHECK-LABEL: f16: ; CHECK-LABEL: <f16>:
; CHECK: r{{[1-9]}}:{{[0-9]}} = vlsrh(r{{[1-9]}}:{{[0-9]}},#1) ; CHECK: r{{[1-9]}}:{{[0-9]}} = vlsrh(r{{[1-9]}}:{{[0-9]}},#1)
define double @f16(double %a0) #0 { define double @f16(double %a0) #0 {
b0: b0:
@ -255,7 +255,7 @@ b0:
declare i64 @llvm.hexagon.S2.lsr.i.vh(i64, i32) #1 declare i64 @llvm.hexagon.S2.lsr.i.vh(i64, i32) #1
; CHECK-LABEL: f17: ; CHECK-LABEL: <f17>:
; CHECK: r{{[1-9]}}:{{[0-9]}} = vaslh(r{{[1-9]}}:{{[0-9]}},#1) ; CHECK: r{{[1-9]}}:{{[0-9]}} = vaslh(r{{[1-9]}}:{{[0-9]}},#1)
define double @f17(double %a0) #0 { define double @f17(double %a0) #0 {
b0: b0:
@ -270,7 +270,7 @@ b0:
declare i64 @llvm.hexagon.S2.asl.i.vh(i64, i32) #1 declare i64 @llvm.hexagon.S2.asl.i.vh(i64, i32) #1
; CHECK-LABEL: f18: ; CHECK-LABEL: <f18>:
; CHECK: r{{[1-9]}}:{{[0-9]}} = vabsw(r{{[1-9]}}:{{[0-9]}}) ; CHECK: r{{[1-9]}}:{{[0-9]}} = vabsw(r{{[1-9]}}:{{[0-9]}})
define double @f18(double %a0) #0 { define double @f18(double %a0) #0 {
b0: b0:
@ -285,7 +285,7 @@ b0:
declare i64 @llvm.hexagon.A2.vabsw(i64) #1 declare i64 @llvm.hexagon.A2.vabsw(i64) #1
; CHECK-LABEL: f19: ; CHECK-LABEL: <f19>:
; CHECK: r{{[1-9]}}:{{[0-9]}} = vabsw(r{{[1-9]}}:{{[0-9]}}):sat ; CHECK: r{{[1-9]}}:{{[0-9]}} = vabsw(r{{[1-9]}}:{{[0-9]}}):sat
define double @f19(double %a0) #0 { define double @f19(double %a0) #0 {
b0: b0:
@ -300,7 +300,7 @@ b0:
declare i64 @llvm.hexagon.A2.vabswsat(i64) #1 declare i64 @llvm.hexagon.A2.vabswsat(i64) #1
; CHECK-LABEL: f20: ; CHECK-LABEL: <f20>:
; CHECK: r{{[1-9]}}:{{[0-9]}} = vasrw(r{{[1-9]}}:{{[0-9]}},#1) ; CHECK: r{{[1-9]}}:{{[0-9]}} = vasrw(r{{[1-9]}}:{{[0-9]}},#1)
define double @f20(double %a0) #0 { define double @f20(double %a0) #0 {
b0: b0:
@ -315,7 +315,7 @@ b0:
declare i64 @llvm.hexagon.S2.asr.i.vw(i64, i32) #1 declare i64 @llvm.hexagon.S2.asr.i.vw(i64, i32) #1
; CHECK-LABEL: f21: ; CHECK-LABEL: <f21>:
; CHECK: r{{[1-9]}}:{{[0-9]}} = vlsrw(r{{[1-9]}}:{{[0-9]}},#1) ; CHECK: r{{[1-9]}}:{{[0-9]}} = vlsrw(r{{[1-9]}}:{{[0-9]}},#1)
define double @f21(double %a0) #0 { define double @f21(double %a0) #0 {
b0: b0:
@ -330,7 +330,7 @@ b0:
declare i64 @llvm.hexagon.S2.lsr.i.vw(i64, i32) #1 declare i64 @llvm.hexagon.S2.lsr.i.vw(i64, i32) #1
; CHECK-LABEL: f22: ; CHECK-LABEL: <f22>:
; CHECK: r{{[1-9]}}:{{[0-9]}} = vaslw(r{{[1-9]}}:{{[0-9]}},#1) ; CHECK: r{{[1-9]}}:{{[0-9]}} = vaslw(r{{[1-9]}}:{{[0-9]}},#1)
define double @f22(double %a0) #0 { define double @f22(double %a0) #0 {
b0: b0:
@ -345,7 +345,7 @@ b0:
declare i64 @llvm.hexagon.S2.asl.i.vw(i64, i32) #1 declare i64 @llvm.hexagon.S2.asl.i.vw(i64, i32) #1
; CHECK-LABEL: f23: ; CHECK-LABEL: <f23>:
; CHECK: r{{[1-9]}}:{{[0-9]}} = brev(r{{[1-9]}}:{{[0-9]}}) ; CHECK: r{{[1-9]}}:{{[0-9]}} = brev(r{{[1-9]}}:{{[0-9]}})
define double @f23(double %a0) #0 { define double @f23(double %a0) #0 {
b0: b0:

View File

@ -3,7 +3,7 @@
@g0 = common global double 0.000000e+00, align 8 @g0 = common global double 0.000000e+00, align 8
@g1 = common global double 0.000000e+00, align 8 @g1 = common global double 0.000000e+00, align 8
; CHECK-LABEL: f0: ; CHECK-LABEL: <f0>:
; CHECK: r{{[0-9]}}:{{[0-9]}} += vrcmpys(r{{[0-9]}}:{{[0-9]}},r{{[0-9]}}:{{[0-9]}}):<<1:sat:raw:lo ; CHECK: r{{[0-9]}}:{{[0-9]}} += vrcmpys(r{{[0-9]}}:{{[0-9]}},r{{[0-9]}}:{{[0-9]}}):<<1:sat:raw:lo
define double @f0(i32 %a0, i32 %a1) { define double @f0(i32 %a0, i32 %a1) {
b0: b0:
@ -19,7 +19,7 @@ b0:
; Function Attrs: nounwind readnone ; Function Attrs: nounwind readnone
declare i64 @llvm.hexagon.M2.vrcmpys.acc.s1(i64, i64, i32) #0 declare i64 @llvm.hexagon.M2.vrcmpys.acc.s1(i64, i64, i32) #0
; CHECK-LABEL: f1: ; CHECK-LABEL: <f1>:
; CHECK: r{{[0-9]}}:{{[0-9]}} += vrcmpys(r{{[0-9]}}:{{[0-9]}},r{{[0-9]}}:{{[0-9]}}):<<1:sat:raw:hi ; CHECK: r{{[0-9]}}:{{[0-9]}} += vrcmpys(r{{[0-9]}}:{{[0-9]}},r{{[0-9]}}:{{[0-9]}}):<<1:sat:raw:hi
define double @f1(i32 %a0, i32 %a1) { define double @f1(i32 %a0, i32 %a1) {
b0: b0:
@ -32,7 +32,7 @@ b0:
ret double %v5 ret double %v5
} }
; CHECK-LABEL: f2: ; CHECK-LABEL: <f2>:
; CHECK: r{{[0-9]}}:{{[0-9]}} = vrcmpys(r{{[0-9]}}:{{[0-9]}},r{{[0-9]}}:{{[0-9]}}):<<1:sat:raw:lo ; CHECK: r{{[0-9]}}:{{[0-9]}} = vrcmpys(r{{[0-9]}}:{{[0-9]}},r{{[0-9]}}:{{[0-9]}}):<<1:sat:raw:lo
define double @f2(i32 %a0, i32 %a1) { define double @f2(i32 %a0, i32 %a1) {
b0: b0:
@ -46,7 +46,7 @@ b0:
; Function Attrs: nounwind readnone ; Function Attrs: nounwind readnone
declare i64 @llvm.hexagon.M2.vrcmpys.s1(i64, i32) #0 declare i64 @llvm.hexagon.M2.vrcmpys.s1(i64, i32) #0
; CHECK-LABEL: f3: ; CHECK-LABEL: <f3>:
; CHECK: r{{[0-9]}}:{{[0-9]}} = vrcmpys(r{{[0-9]}}:{{[0-9]}},r{{[0-9]}}:{{[0-9]}}):<<1:sat:raw:hi ; CHECK: r{{[0-9]}}:{{[0-9]}} = vrcmpys(r{{[0-9]}}:{{[0-9]}},r{{[0-9]}}:{{[0-9]}}):<<1:sat:raw:hi
define double @f3(i32 %a0, i32 %a1) { define double @f3(i32 %a0, i32 %a1) {
b0: b0:
@ -57,7 +57,7 @@ b0:
ret double %v3 ret double %v3
} }
; CHECK-LABEL: f4: ; CHECK-LABEL: <f4>:
; CHECK: e9a4c2e0 { r0 = vrcmpys(r5:4,r3:2):<<1:rnd:sat:raw:lo } ; CHECK: e9a4c2e0 { r0 = vrcmpys(r5:4,r3:2):<<1:rnd:sat:raw:lo }
; CHECK: e9a4c2c0 { r0 = vrcmpys(r5:4,r3:2):<<1:rnd:sat:raw:hi } ; CHECK: e9a4c2c0 { r0 = vrcmpys(r5:4,r3:2):<<1:rnd:sat:raw:hi }
define void @f4() { define void @f4() {

View File

@ -40,7 +40,7 @@ define i32 @f1() {
; beqc and bnec have the restriction that $rs < $rt. ; beqc and bnec have the restriction that $rs < $rt.
define i32 @f2(i32 %a, i32 %b) { define i32 @f2(i32 %a, i32 %b) {
; ENCODING-LABEL: f2: ; ENCODING-LABEL: <f2>:
; ENCODING-NOT: beqc $5, $4 ; ENCODING-NOT: beqc $5, $4
; ENCODING-NOT: bnec $5, $4 ; ENCODING-NOT: bnec $5, $4
@ -87,7 +87,7 @@ define i64 @f4() {
; beqc and bnec have the restriction that $rs < $rt. ; beqc and bnec have the restriction that $rs < $rt.
define i64 @f5(i64 %a, i64 %b) { define i64 @f5(i64 %a, i64 %b) {
; ENCODING-LABEL: f5: ; ENCODING-LABEL: <f5>:
; ENCODING-NOT: beqc $5, $4 ; ENCODING-NOT: beqc $5, $4
; ENCODING-NOT: bnec $5, $4 ; ENCODING-NOT: bnec $5, $4

View File

@ -13,7 +13,7 @@
; FIXME: We should be able to get rid of those instructions with the variable ; FIXME: We should be able to get rid of those instructions with the variable
; value registers. ; value registers.
; ALL-LABEL: spill_reload: ; ALL-LABEL: spill_reload{{>?}}:
define <4 x i8> @spill_reload(<4 x i8> %a, <4 x i8> %b, i32 %g) { define <4 x i8> @spill_reload(<4 x i8> %a, <4 x i8> %b, i32 %g) {
entry: entry:

View File

@ -1,7 +1,7 @@
; RUN: llc -march=mips -relocation-model=pic -mattr=+micromips \ ; RUN: llc -march=mips -relocation-model=pic -mattr=+micromips \
; RUN: -filetype=obj -o - %s | llvm-objdump -d - | FileCheck %s ; RUN: -filetype=obj -o - %s | llvm-objdump -d - | FileCheck %s
; CHECK-LABEL: foo: ; CHECK-LABEL: <foo>:
; CHECK-NEXT: 0: 41 a2 00 00 lui $2, 0 ; CHECK-NEXT: 0: 41 a2 00 00 lui $2, 0
; CHECK-NEXT: 4: 30 42 00 00 addiu $2, $2, 0 ; CHECK-NEXT: 4: 30 42 00 00 addiu $2, $2, 0
; CHECK-NEXT: 8: 03 22 11 50 addu $2, $2, $25 ; CHECK-NEXT: 8: 03 22 11 50 addu $2, $2, $25

View File

@ -7,10 +7,10 @@
; RUN: | FileCheck --check-prefix=MM6 %s ; RUN: | FileCheck --check-prefix=MM6 %s
define void @fun(i32 %val) { define void @fun(i32 %val) {
; MM2-LABEL: fun: ; MM2-LABEL: <fun>:
; MM2: cb e5 sw $ra, 20($sp) ; MM2: cb e5 sw $ra, 20($sp)
; MM6-LABEL: fun: ; MM6-LABEL: <fun>:
; MM6: fb fd 00 14 sw $ra, 20($sp) ; MM6: fb fd 00 14 sw $ra, 20($sp)
entry: entry:
call i32* @fun1() call i32* @fun1()

View File

@ -111,13 +111,13 @@ body: |
... ...
# CHECK-LABEL: g: # CHECK-LABEL: <g>:
# CHECK: 0: 60 24 00 00 lwl $1, 0($4) # CHECK: 0: 60 24 00 00 lwl $1, 0($4)
# CHECK: 4: 60 24 10 03 lwr $1, 3($4) # CHECK: 4: 60 24 10 03 lwr $1, 3($4)
# CHECK: 8: 60 25 80 00 swl $1, 0($5) # CHECK: 8: 60 25 80 00 swl $1, 0($5)
# CHECK: c: 60 25 90 03 swr $1, 3($5) # CHECK: c: 60 25 90 03 swr $1, 3($5)
# CHECK-LABEL: g2: # CHECK-LABEL: <g2>:
# CHECK: 14: 60 24 64 00 lwle $1, 0($4) # CHECK: 14: 60 24 64 00 lwle $1, 0($4)
# CHECK: 18: 60 24 66 03 lwre $1, 3($4) # CHECK: 18: 60 24 66 03 lwre $1, 3($4)
# CHECK: 1c: 60 25 a0 00 swle $1, 0($5) # CHECK: 1c: 60 25 a0 00 swle $1, 0($5)

View File

@ -114,7 +114,7 @@ define void @callThroughPtrWithArgs(void (i32, i16, i64)* nocapture) {
; MIR64-NEXT: ADJCALLSTACKUP 112, 0, implicit-def dead $r1, implicit $r1 ; MIR64-NEXT: ADJCALLSTACKUP 112, 0, implicit-def dead $r1, implicit $r1
; CHECKASM-LABEL: .callThroughPtrWithArgs: ; CHECKASM-LABEL: .callThroughPtrWithArgs:
; CHECKOBJ-LABEL: .callThroughPtrWithArgs: ; CHECKOBJ-LABEL: <.callThroughPtrWithArgs>:
; ASMOBJ32: stwu 1, -64(1) ; ASMOBJ32: stwu 1, -64(1)
; ASMOBJ32-DAG: lwz [[REG:[0-9]+]], 0(3) ; ASMOBJ32-DAG: lwz [[REG:[0-9]+]], 0(3)

View File

@ -19,21 +19,21 @@ entry:
; CHECK: blr ; CHECK: blr
} }
;CHECKOBJ: 00000000 .text: ;CHECKOBJ: 00000000 <.text>:
;CHECKOBJ-NEXT: 0: 38 60 00 37 li 3, 55 ;CHECKOBJ-NEXT: 0: 38 60 00 37 li 3, 55
;CHECKOBJ-NEXT: 4: 4e 80 00 20 blr{{[[:space:]] *}} ;CHECKOBJ-NEXT: 4: 4e 80 00 20 blr{{[[:space:]] *}}
;CHECKOBJ-NEXT: 00000008 .rodata.str1.1: ;CHECKOBJ-NEXT: 00000008 <.rodata.str1.1>:
;CHECKOBJ-NEXT: 8: 68 65 6c 6c xori 5, 3, 27756 ;CHECKOBJ-NEXT: 8: 68 65 6c 6c xori 5, 3, 27756
;CHECKOBJ-NEXT: c: 6f 77 6f 72 xoris 23, 27, 28530 ;CHECKOBJ-NEXT: c: 6f 77 6f 72 xoris 23, 27, 28530
;CHECKOBJ-NEXT: 10: 0a 00 00 00 tdlti 0, 0{{[[:space:]] *}} ;CHECKOBJ-NEXT: 10: 0a 00 00 00 tdlti 0, 0{{[[:space:]] *}}
;CHECKOBJ-NEXT: Disassembly of section .data:{{[[:space:]] *}} ;CHECKOBJ-NEXT: Disassembly of section .data:{{[[:space:]] *}}
;CHECKOBJ-NEXT: 00000018 a: ;CHECKOBJ-NEXT: 00000018 <a>:
;CHECKOBJ-NEXT: 18: 00 01 23 45 <unknown> ;CHECKOBJ-NEXT: 18: 00 01 23 45 <unknown>
;CHECKOBJ-NEXT: 1c: 67 8a bc de oris 10, 28, 48350{{[[:space:]] *}} ;CHECKOBJ-NEXT: 1c: 67 8a bc de oris 10, 28, 48350{{[[:space:]] *}}
;CHECKOBJ-NEXT: 00000020 d: ;CHECKOBJ-NEXT: 00000020 <d>:
;CHECKOBJ-NEXT: 20: 40 14 00 00 bdnzf 20, .+0 ;CHECKOBJ-NEXT: 20: 40 14 00 00 bdnzf 20, .+0
;CHECKOBJ-NEXT: 24: 00 00 00 00 <unknown>{{[[:space:]] *}} ;CHECKOBJ-NEXT: 24: 00 00 00 00 <unknown>{{[[:space:]] *}}
;CHECKOBJ-NEXT: 00000028 foo: ;CHECKOBJ-NEXT: 00000028 <foo>:
;CHECKOBJ-NEXT: 28: 00 00 00 00 <unknown> ;CHECKOBJ-NEXT: 28: 00 00 00 00 <unknown>
;CHECKOBJ-NEXT: 2c: 00 00 00 34 <unknown> ;CHECKOBJ-NEXT: 2c: 00 00 00 34 <unknown>
;CHECKOBJ-NEXT: 30: 00 00 00 00 <unknown> ;CHECKOBJ-NEXT: 30: 00 00 00 00 <unknown>

View File

@ -96,12 +96,12 @@ declare void @llvm.memcpy.p0i8.p0i8.i32(i8* nocapture writeonly, i8* nocapture r
; 32-REL-NOT: Type: R_RBR (0x1A) ; 32-REL-NOT: Type: R_RBR (0x1A)
; 32-DIS: Disassembly of section .text: ; 32-DIS: Disassembly of section .text:
; 32-DIS: 00000000 .text: ; 32-DIS: 00000000 <.text>:
; 32-DIS-NEXT: 0: 38 60 00 03 li 3, 3 ; 32-DIS-NEXT: 0: 38 60 00 03 li 3, 3
; 32-DIS-NEXT: 4: 4e 80 00 20 blr ; 32-DIS-NEXT: 4: 4e 80 00 20 blr
; 32-DIS-NEXT: 8: 60 00 00 00 nop ; 32-DIS-NEXT: 8: 60 00 00 00 nop
; 32-DIS-NEXT: c: 60 00 00 00 nop ; 32-DIS-NEXT: c: 60 00 00 00 nop
; 32-DIS: 00000010 .call_memcpy: ; 32-DIS: 00000010 <.call_memcpy>:
; 32-DIS-NEXT: 10: 7c 08 02 a6 mflr 0 ; 32-DIS-NEXT: 10: 7c 08 02 a6 mflr 0
; 32-DIS-NEXT: 14: 90 01 00 08 stw 0, 8(1) ; 32-DIS-NEXT: 14: 90 01 00 08 stw 0, 8(1)
; 32-DIS-NEXT: 18: 94 21 ff c0 stwu 1, -64(1) ; 32-DIS-NEXT: 18: 94 21 ff c0 stwu 1, -64(1)

View File

@ -47,11 +47,11 @@ entry:
;CHECK-NEXT: .space 1 ;CHECK-NEXT: .space 1
;CHECKOBJ: 00000000 .text: ;CHECKOBJ: 00000000 <.text>:
;CHECKOBJ-NEXT: 0: 38 60 00 00 li 3, 0 ;CHECKOBJ-NEXT: 0: 38 60 00 00 li 3, 0
;CHECKOBJ-NEXT: 4: 4e 80 00 20 blr ;CHECKOBJ-NEXT: 4: 4e 80 00 20 blr
;CHECKOBJ-NEXT: ...{{[[:space:]] *}} ;CHECKOBJ-NEXT: ...{{[[:space:]] *}}
;CHECKOBJ-NEXT: 00000010 .rodata: ;CHECKOBJ-NEXT: 00000010 <.rodata>:
;CHECKOBJ-NEXT: 10: 40 00 00 00 ;CHECKOBJ-NEXT: 10: 40 00 00 00
;CHECKOBJ-NEXT: 14: 00 00 00 32 ;CHECKOBJ-NEXT: 14: 00 00 00 32
;CHECKOBJ-NEXT: ...{{[[:space:]] *}} ;CHECKOBJ-NEXT: ...{{[[:space:]] *}}

View File

@ -66,15 +66,15 @@ entry:
; CHECK-NEXT: .byte 104 ; CHECK-NEXT: .byte 104
; CHECK-NEXT: .byte 0 ; CHECK-NEXT: .byte 0
; CHECKOBJ: 00000010 .rodata.str2.2: ; CHECKOBJ: 00000010 <.rodata.str2.2>:
; CHECKOBJ-NEXT: 10: 01 08 01 10 ; CHECKOBJ-NEXT: 10: 01 08 01 10
; CHECKOBJ-NEXT: 14: 00 d5 00 00 {{.*}}{{[[:space:]] *}} ; CHECKOBJ-NEXT: 14: 00 d5 00 00 {{.*}}{{[[:space:]] *}}
; CHECKOBJ-NEXT: 00000018 .rodata.str4.4: ; CHECKOBJ-NEXT: 00000018 <.rodata.str4.4>:
; CHECKOBJ-NEXT: 18: 00 00 01 d0 ; CHECKOBJ-NEXT: 18: 00 00 01 d0
; CHECKOBJ-NEXT: 1c: 00 00 01 d8 ; CHECKOBJ-NEXT: 1c: 00 00 01 d8
; CHECKOBJ-NEXT: 20: 00 00 01 9d ; CHECKOBJ-NEXT: 20: 00 00 01 9d
; CHECKOBJ-NEXT: 24: 00 00 00 00 {{.*}}{{[[:space:]] *}} ; CHECKOBJ-NEXT: 24: 00 00 00 00 {{.*}}{{[[:space:]] *}}
; CHECKOBJ-NEXT: 00000028 .rodata.str1.1: ; CHECKOBJ-NEXT: 00000028 <.rodata.str1.1>:
; CHECKOBJ-NEXT: 28: 68 65 6c 6c ; CHECKOBJ-NEXT: 28: 68 65 6c 6c
; CHECKOBJ-NEXT: 2c: 6f 20 77 6f ; CHECKOBJ-NEXT: 2c: 6f 20 77 6f
; CHECKOBJ-NEXT: 30: 72 6c 64 21 ; CHECKOBJ-NEXT: 30: 72 6c 64 21

View File

@ -410,7 +410,7 @@ declare i32 @bar(i32)
; DIS: {{.*}}aix-xcoff-reloc.ll.tmp.o: file format aixcoff-rs6000 ; DIS: {{.*}}aix-xcoff-reloc.ll.tmp.o: file format aixcoff-rs6000
; DIS: Disassembly of section .text: ; DIS: Disassembly of section .text:
; DIS: 00000000 .text: ; DIS: 00000000 <.text>:
; DIS-NEXT: 0: 7c 08 02 a6 mflr 0 ; DIS-NEXT: 0: 7c 08 02 a6 mflr 0
; DIS-NEXT: 4: 90 01 00 08 stw 0, 8(1) ; DIS-NEXT: 4: 90 01 00 08 stw 0, 8(1)
; DIS-NEXT: 8: 94 21 ff c0 stwu 1, -64(1) ; DIS-NEXT: 8: 94 21 ff c0 stwu 1, -64(1)
@ -429,20 +429,20 @@ declare i32 @bar(i32)
; DIS-NEXT: 3c: 4e 80 00 20 blr ; DIS-NEXT: 3c: 4e 80 00 20 blr
; DIS: Disassembly of section .data: ; DIS: Disassembly of section .data:
; DIS: 00000040 globalA: ; DIS: 00000040 <globalA>:
; DIS-NEXT: 40: 00 00 00 01 <unknown> ; DIS-NEXT: 40: 00 00 00 01 <unknown>
; DIS: 00000044 globalB: ; DIS: 00000044 <globalB>:
; DIS-NEXT: 44: 00 00 00 02 <unknown> ; DIS-NEXT: 44: 00 00 00 02 <unknown>
; DIS: 00000048 arr: ; DIS: 00000048 <arr>:
; DIS-NEXT: 48: 00 00 00 03 <unknown> ; DIS-NEXT: 48: 00 00 00 03 <unknown>
; DIS-NEXT: ... ; DIS-NEXT: ...
; DIS: 00000070 p: ; DIS: 00000070 <p>:
; DIS-NEXT: 70: 00 00 00 58 <unknown> ; DIS-NEXT: 70: 00 00 00 58 <unknown>
; DIS: 00000074 foo: ; DIS: 00000074 <foo>:
; DIS-NEXT: 74: 00 00 00 00 <unknown> ; DIS-NEXT: 74: 00 00 00 00 <unknown>
; DIS-NEXT: 78: 00 00 00 80 <unknown> ; DIS-NEXT: 78: 00 00 00 80 <unknown>
; DIS-NEXT: 7c: 00 00 00 00 <unknown> ; DIS-NEXT: 7c: 00 00 00 00 <unknown>
; DIS: 00000080 globalA: ; DIS: 00000080 <globalA>:
; DIS-NEXT: 80: 00 00 00 40 <unknown> ; DIS-NEXT: 80: 00 00 00 40 <unknown>
; DIS: 00000084 globalB: ; DIS: 00000084 <globalB>:
; DIS-NEXT: 84: 00 00 00 44 <unknown> ; DIS-NEXT: 84: 00 00 00 44 <unknown>

View File

@ -285,33 +285,33 @@
; SYMS: ] ; SYMS: ]
; DIS: Disassembly of section .text: ; DIS: Disassembly of section .text:
; DIS: 00000000 const_ivar: ; DIS: 00000000 <const_ivar>:
; DIS-NEXT: 0: 00 00 00 23 ; DIS-NEXT: 0: 00 00 00 23
; DIS-NEXT: 4: 00 00 00 00 ; DIS-NEXT: 4: 00 00 00 00
; DIS: 00000008 const_llvar: ; DIS: 00000008 <const_llvar>:
; DIS-NEXT: 8: 00 00 00 00 ; DIS-NEXT: 8: 00 00 00 00
; DIS-NEXT: c: 00 00 00 24 ; DIS-NEXT: c: 00 00 00 24
; DIS: 00000010 const_svar: ; DIS: 00000010 <const_svar>:
; DIS-NEXT: 10: 00 25 00 00 ; DIS-NEXT: 10: 00 25 00 00
; DIS: 00000014 const_fvar: ; DIS: 00000014 <const_fvar>:
; DIS-NEXT: 14: 44 48 00 00 ; DIS-NEXT: 14: 44 48 00 00
; DIS: 00000018 const_dvar: ; DIS: 00000018 <const_dvar>:
; DIS-NEXT: 18: 40 8c 20 00 ; DIS-NEXT: 18: 40 8c 20 00
; DIS-NEXT: 1c: 00 00 00 00 ; DIS-NEXT: 1c: 00 00 00 00
; DIS: 00000020 const_over_aligned: ; DIS: 00000020 <const_over_aligned>:
; DIS-NEXT: 20: 40 8c 20 00 ; DIS-NEXT: 20: 40 8c 20 00
; DIS-NEXT: 24: 00 00 00 00 ; DIS-NEXT: 24: 00 00 00 00
; DIS: 00000028 const_chrarray: ; DIS: 00000028 <const_chrarray>:
; DIS-NEXT: 28: 61 62 63 64 ; DIS-NEXT: 28: 61 62 63 64
; DIS-NEXT: 2c: 00 00 00 00 ; DIS-NEXT: 2c: 00 00 00 00
; DIS: 00000030 const_dblarr: ; DIS: 00000030 <const_dblarr>:
; DIS-NEXT: 30: 3f f0 00 00 ; DIS-NEXT: 30: 3f f0 00 00
; DIS-NEXT: 34: 00 00 00 00 ; DIS-NEXT: 34: 00 00 00 00
; DIS-NEXT: 38: 40 00 00 00 ; DIS-NEXT: 38: 40 00 00 00

View File

@ -12,11 +12,11 @@ entry:
} }
; CHECK: Disassembly of section .text:{{[[:space:]] *}} ; CHECK: Disassembly of section .text:{{[[:space:]] *}}
; CHECK-NEXT: 00000000 .text: ; CHECK-NEXT: 00000000 <.text>:
; CHECK-NEXT: 0: 38 60 00 00 li 3, 0 ; CHECK-NEXT: 0: 38 60 00 00 li 3, 0
; CHECK-NEXT: 4: 4e 80 00 20 blr ; CHECK-NEXT: 4: 4e 80 00 20 blr
; CHECK-NEXT: 8: 60 00 00 00 nop ; CHECK-NEXT: 8: 60 00 00 00 nop
; CHECK-NEXT: c: 60 00 00 00 nop ; CHECK-NEXT: c: 60 00 00 00 nop
; CHECK: 00000010 .foo1: ; CHECK: 00000010 <.foo1>:
; CHECK-NEXT: 10: 38 60 00 01 li 3, 1 ; CHECK-NEXT: 10: 38 60 00 01 li 3, 1
; CHECK-NEXT: 14: 4e 80 00 20 blr ; CHECK-NEXT: 14: 4e 80 00 20 blr

View File

@ -32,7 +32,7 @@
; instructions which also require one of the floating point extensions. ; instructions which also require one of the floating point extensions.
define float @float_load(float *%a) #0 { define float @float_load(float *%a) #0 {
; RV32IFDC-LABEL: float_load: ; RV32IFDC-LABEL: <float_load>:
; RV32IFDC: c.flw fa0, 0(a0) ; RV32IFDC: c.flw fa0, 0(a0)
; RV32IFDC-NEXT: c.jr ra ; RV32IFDC-NEXT: c.jr ra
%1 = load volatile float, float* %a %1 = load volatile float, float* %a
@ -40,7 +40,7 @@ define float @float_load(float *%a) #0 {
} }
define double @double_load(double *%a) #0 { define double @double_load(double *%a) #0 {
; RV32IFDC-LABEL: double_load: ; RV32IFDC-LABEL: <double_load>:
; RV32IFDC: c.fld fa0, 0(a0) ; RV32IFDC: c.fld fa0, 0(a0)
; RV32IFDC-NEXT: c.jr ra ; RV32IFDC-NEXT: c.jr ra
%1 = load volatile double, double* %a %1 = load volatile double, double* %a

View File

@ -5,7 +5,7 @@
@ext = external global i32 @ext = external global i32
define i32 @compress_test(i32 %a) { define i32 @compress_test(i32 %a) {
; CHECK-LABEL: compress_test: ; CHECK-LABEL: <compress_test>:
; CHECK: c.add a0, a1 ; CHECK: c.add a0, a1
; CHECK-NEXT: c.jr ra ; CHECK-NEXT: c.jr ra
%1 = load i32, i32* @ext %1 = load i32, i32* @ext

View File

@ -30,7 +30,7 @@
; different test file. ; different test file.
define i32 @simple_arith(i32 %a, i32 %b) #0 { define i32 @simple_arith(i32 %a, i32 %b) #0 {
; RV32IC-LABEL: simple_arith: ; RV32IC-LABEL: <simple_arith>:
; RV32IC: addi a2, a0, 1 ; RV32IC: addi a2, a0, 1
; RV32IC-NEXT: c.andi a2, 11 ; RV32IC-NEXT: c.andi a2, 11
; RV32IC-NEXT: c.slli a2, 7 ; RV32IC-NEXT: c.slli a2, 7
@ -48,7 +48,7 @@ define i32 @simple_arith(i32 %a, i32 %b) #0 {
} }
define i32 @select(i32 %a, i32 *%b) #0 { define i32 @select(i32 %a, i32 *%b) #0 {
; RV32IC-LABEL: select: ; RV32IC-LABEL: <select>:
; RV32IC: c.lw a2, 0(a1) ; RV32IC: c.lw a2, 0(a1)
; RV32IC-NEXT: c.beqz a2, 4 ; RV32IC-NEXT: c.beqz a2, 4
; RV32IC-NEXT: c.mv a0, a2 ; RV32IC-NEXT: c.mv a0, a2
@ -124,14 +124,14 @@ define i32 @select(i32 %a, i32 *%b) #0 {
} }
define i32 @pos_tiny() #0 { define i32 @pos_tiny() #0 {
; RV32IC-LABEL: pos_tiny: ; RV32IC-LABEL: <pos_tiny>:
; RV32IC: c.li a0, 18 ; RV32IC: c.li a0, 18
; RV32IC-NEXT: c.jr ra ; RV32IC-NEXT: c.jr ra
ret i32 18 ret i32 18
} }
define i32 @pos_i32() #0 { define i32 @pos_i32() #0 {
; RV32IC-LABEL: pos_i32: ; RV32IC-LABEL: <pos_i32>:
; RV32IC: lui a0, 423811 ; RV32IC: lui a0, 423811
; RV32IC-NEXT: addi a0, a0, -1297 ; RV32IC-NEXT: addi a0, a0, -1297
; RV32IC-NEXT: c.jr ra ; RV32IC-NEXT: c.jr ra
@ -139,7 +139,7 @@ define i32 @pos_i32() #0 {
} }
define i32 @pos_i32_half_compressible() #0 { define i32 @pos_i32_half_compressible() #0 {
; RV32IC-LABEL: pos_i32_half_compressible: ; RV32IC-LABEL: <pos_i32_half_compressible>:
; RV32IC: lui a0, 423810 ; RV32IC: lui a0, 423810
; RV32IC-NEXT: c.addi a0, 28 ; RV32IC-NEXT: c.addi a0, 28
; RV32IC-NEXT: c.jr ra ; RV32IC-NEXT: c.jr ra
@ -147,14 +147,14 @@ define i32 @pos_i32_half_compressible() #0 {
} }
define i32 @neg_tiny() #0 { define i32 @neg_tiny() #0 {
; RV32IC-LABEL: neg_tiny: ; RV32IC-LABEL: <neg_tiny>:
; RV32IC: c.li a0, -19 ; RV32IC: c.li a0, -19
; RV32IC-NEXT: c.jr ra ; RV32IC-NEXT: c.jr ra
ret i32 -19 ret i32 -19
} }
define i32 @neg_i32() #0 { define i32 @neg_i32() #0 {
; RV32IC-LABEL: neg_i32: ; RV32IC-LABEL: <neg_i32>:
; RV32IC: lui a0, 912092 ; RV32IC: lui a0, 912092
; RV32IC-NEXT: addi a0, a0, -273 ; RV32IC-NEXT: addi a0, a0, -273
; RV32IC-NEXT: c.jr ra ; RV32IC-NEXT: c.jr ra
@ -162,14 +162,14 @@ define i32 @neg_i32() #0 {
} }
define i32 @pos_i32_hi20_only() #0 { define i32 @pos_i32_hi20_only() #0 {
; RV32IC-LABEL: pos_i32_hi20_only: ; RV32IC-LABEL: <pos_i32_hi20_only>:
; RV32IC: c.lui a0, 16 ; RV32IC: c.lui a0, 16
; RV32IC-NEXT: c.jr ra ; RV32IC-NEXT: c.jr ra
ret i32 65536 ret i32 65536
} }
define i32 @neg_i32_hi20_only() #0 { define i32 @neg_i32_hi20_only() #0 {
; RV32IC-LABEL: neg_i32_hi20_only: ; RV32IC-LABEL: <neg_i32_hi20_only>:
; RV32IC: c.lui a0, 1048560 ; RV32IC: c.lui a0, 1048560
; RV32IC-NEXT: c.jr ra ; RV32IC-NEXT: c.jr ra
ret i32 -65536 ret i32 -65536

View File

@ -7,7 +7,7 @@
declare i32 @foo(i32) declare i32 @foo(i32)
define i32 @bar(i32 %a) nounwind { define i32 @bar(i32 %a) nounwind {
; CHECK-LABEL: bar: ; CHECK-LABEL: <bar>:
; CHECK: R_RISCV_CALL ; CHECK: R_RISCV_CALL
; CHECK: R_RISCV_RELAX ; CHECK: R_RISCV_RELAX
tail call void asm sideeffect ".option norelax", ""() tail call void asm sideeffect ".option norelax", ""()

View File

@ -6,7 +6,7 @@
; emitting an ELF directly. ; emitting an ELF directly.
define i32 @add(i32 %a, i32 %b) nounwind { define i32 @add(i32 %a, i32 %b) nounwind {
; CHECK-LABEL: add: ; CHECK-LABEL: <add>:
; CHECK: c.add a0, a1 ; CHECK: c.add a0, a1
; CHECK-NEXT: c.jr ra ; CHECK-NEXT: c.jr ra
tail call void asm sideeffect ".option norvc", ""() tail call void asm sideeffect ".option norvc", ""()

View File

@ -7,7 +7,7 @@
declare i32 @foo(i32) declare i32 @foo(i32)
define i32 @bar(i32 %a) nounwind { define i32 @bar(i32 %a) nounwind {
; CHECK-LABEL: bar: ; CHECK-LABEL: <bar>:
; CHECK: R_RISCV_CALL ; CHECK: R_RISCV_CALL
; CHECK-NOT: R_RISCV_RELAX ; CHECK-NOT: R_RISCV_RELAX
tail call void asm sideeffect ".option relax", ""() tail call void asm sideeffect ".option relax", ""()

View File

@ -6,7 +6,7 @@
; emitting an ELF directly. ; emitting an ELF directly.
define i32 @add(i32 %a, i32 %b) nounwind { define i32 @add(i32 %a, i32 %b) nounwind {
; CHECK-LABEL: add: ; CHECK-LABEL: <add>:
; CHECK: add a0, a1, a0 ; CHECK: add a0, a1, a0
; CHECK-NEXT: jalr zero, 0(ra) ; CHECK-NEXT: jalr zero, 0(ra)
tail call void asm sideeffect ".option rvc", ""() tail call void asm sideeffect ".option rvc", ""()

View File

@ -7,7 +7,7 @@
; Largest stack for which a single tADDspi/tSUBspi is enough ; Largest stack for which a single tADDspi/tSUBspi is enough
define void @test1() { define void @test1() {
; CHECK-LABEL: test1: ; CHECK-LABEL: test1{{>?}}:
; CHECK: sub sp, #508 ; CHECK: sub sp, #508
; CHECK: add sp, #508 ; CHECK: add sp, #508
%tmp = alloca [ 508 x i8 ] , align 4 %tmp = alloca [ 508 x i8 ] , align 4
@ -16,7 +16,7 @@ define void @test1() {
; Largest stack for which three tADDspi/tSUBspis are enough ; Largest stack for which three tADDspi/tSUBspis are enough
define void @test100() { define void @test100() {
; CHECK-LABEL: test100: ; CHECK-LABEL: test100{{>?}}:
; CHECK: sub sp, #508 ; CHECK: sub sp, #508
; CHECK: sub sp, #508 ; CHECK: sub sp, #508
; CHECK: sub sp, #508 ; CHECK: sub sp, #508
@ -29,7 +29,7 @@ define void @test100() {
; Largest stack for which three tADDspi/tSUBspis are enough ; Largest stack for which three tADDspi/tSUBspis are enough
define void @test100_nofpelim() "frame-pointer"="all" { define void @test100_nofpelim() "frame-pointer"="all" {
; CHECK-LABEL: test100_nofpelim: ; CHECK-LABEL: test100_nofpelim{{>?}}:
; CHECK: sub sp, #508 ; CHECK: sub sp, #508
; CHECK: sub sp, #508 ; CHECK: sub sp, #508
; CHECK: sub sp, #508 ; CHECK: sub sp, #508
@ -42,7 +42,7 @@ define void @test100_nofpelim() "frame-pointer"="all" {
; Smallest stack for which we use a constant pool ; Smallest stack for which we use a constant pool
define void @test2() { define void @test2() {
; CHECK-LABEL: test2: ; CHECK-LABEL: test2{{>?}}:
; CHECK: ldr [[TEMP:r[0-7]]], ; CHECK: ldr [[TEMP:r[0-7]]],
; CHECK: add sp, [[TEMP]] ; CHECK: add sp, [[TEMP]]
; CHECK: ldr [[TEMP:r[0-7]]], ; CHECK: ldr [[TEMP:r[0-7]]],
@ -53,7 +53,7 @@ define void @test2() {
; Smallest stack for which we use a constant pool ; Smallest stack for which we use a constant pool
define void @test2_nofpelim() "frame-pointer"="all" { define void @test2_nofpelim() "frame-pointer"="all" {
; CHECK-LABEL: test2_nofpelim: ; CHECK-LABEL: test2_nofpelim{{>?}}:
; CHECK: ldr [[TEMP:r[0-7]]], ; CHECK: ldr [[TEMP:r[0-7]]],
; CHECK: add sp, [[TEMP]] ; CHECK: add sp, [[TEMP]]
; CHECK: subs r4, r7, #7 ; CHECK: subs r4, r7, #7
@ -64,7 +64,7 @@ define void @test2_nofpelim() "frame-pointer"="all" {
} }
define i32 @test3() { define i32 @test3() {
; CHECK-LABEL: test3: ; CHECK-LABEL: test3{{>?}}:
; CHECK: ldr [[TEMP:r[0-7]]], ; CHECK: ldr [[TEMP:r[0-7]]],
; CHECK: add sp, [[TEMP]] ; CHECK: add sp, [[TEMP]]
; CHECK: ldr [[TEMP2:r[0-7]]], ; CHECK: ldr [[TEMP2:r[0-7]]],
@ -80,7 +80,7 @@ define i32 @test3() {
} }
define i32 @test3_nofpelim() "frame-pointer"="all" { define i32 @test3_nofpelim() "frame-pointer"="all" {
; CHECK-LABEL: test3_nofpelim: ; CHECK-LABEL: test3_nofpelim{{>?}}:
; CHECK: ldr [[TEMP:r[0-7]]], ; CHECK: ldr [[TEMP:r[0-7]]],
; CHECK: add sp, [[TEMP]] ; CHECK: add sp, [[TEMP]]
; CHECK: ldr [[TEMP2:r[0-7]]], ; CHECK: ldr [[TEMP2:r[0-7]]],

View File

@ -9,7 +9,7 @@ target triple = "x86_64-apple-macosx10.9.0"
@.str1 = private unnamed_addr constant [3 x i8] c" \00", align 1 @.str1 = private unnamed_addr constant [3 x i8] c" \00", align 1
@.str2 = private unnamed_addr constant [6 x i8] c"%s%p:\00", align 1 @.str2 = private unnamed_addr constant [6 x i8] c"%s%p:\00", align 1
; CHECK: ___asan_report_error: ; CHECK: <___asan_report_error>:
; subq instruction starts at 0x0a, so the second byte of the compact encoding ; subq instruction starts at 0x0a, so the second byte of the compact encoding
; (UNWIND_X86_64_FRAMELESS_STACK_SIZE in mach-o/compact_unwind_encoding.h) ; (UNWIND_X86_64_FRAMELESS_STACK_SIZE in mach-o/compact_unwind_encoding.h)

View File

@ -2,7 +2,7 @@
; RUN: | llvm-objdump -triple x86_64-linux-gnu -d - \ ; RUN: | llvm-objdump -triple x86_64-linux-gnu -d - \
; RUN: | FileCheck %s ; RUN: | FileCheck %s
; CHECK: 0000000000000000 test1: ; CHECK: 0000000000000000 <test1>:
; CHECK-NEXT: 0: 74 00 je 0 <test1+0x2> ; CHECK-NEXT: 0: 74 00 je 0 <test1+0x2>
; CHECK-NEXT: 2: c3 retq ; CHECK-NEXT: 2: c3 retq

View File

@ -4,7 +4,7 @@
declare void @callee(i64*) declare void @callee(i64*)
define void @f0() "patchable-function"="prologue-short-redirect" { define void @f0() "patchable-function"="prologue-short-redirect" {
; CHECK-LABEL: _f0: ; CHECK-LABEL: _f0{{>?}}:
; CHECK-NEXT: 66 90 nop ; CHECK-NEXT: 66 90 nop
; CHECK-ALIGN: .p2align 4, 0x90 ; CHECK-ALIGN: .p2align 4, 0x90
@ -45,7 +45,7 @@ define void @f3() "patchable-function"="prologue-short-redirect" optsize {
; This testcase happens to produce a KILL instruction at the beginning of the ; This testcase happens to produce a KILL instruction at the beginning of the
; first basic block. In this case the 2nd instruction should be turned into a ; first basic block. In this case the 2nd instruction should be turned into a
; patchable one. ; patchable one.
; CHECK-LABEL: f4: ; CHECK-LABEL: f4{{>?}}:
; CHECK-NEXT: 8b 0c 37 movl (%rdi,%rsi), %ecx ; CHECK-NEXT: 8b 0c 37 movl (%rdi,%rsi), %ecx
define i32 @f4(i8* %arg1, i64 %arg2, i32 %arg3) "patchable-function"="prologue-short-redirect" { define i32 @f4(i8* %arg1, i64 %arg2, i32 %arg3) "patchable-function"="prologue-short-redirect" {
bb: bb:

View File

@ -18,7 +18,7 @@
; Check that we can print the source, even with relocations. ; Check that we can print the source, even with relocations.
; OBJDUMP-SOURCE: Disassembly of section .text: ; OBJDUMP-SOURCE: Disassembly of section .text:
; OBJDUMP-SOURCE-EMPTY: ; OBJDUMP-SOURCE-EMPTY:
; OBJDUMP-SOURCE-NEXT: 00000000 main: ; OBJDUMP-SOURCE-NEXT: 00000000 <main>:
; OBJDUMP-SOURCE: ; { ; OBJDUMP-SOURCE: ; {
; OBJDUMP-SOURCE: ; return 0; ; OBJDUMP-SOURCE: ; return 0;

View File

@ -7,7 +7,7 @@
; RUN: llvm-lto2 run -filetype=obj -r %t1.bc,main,px -o %t2 %t1.bc ; RUN: llvm-lto2 run -filetype=obj -r %t1.bc,main,px -o %t2 %t1.bc
; RUN: llvm-objdump -d %t2.0 | FileCheck --check-prefix=ASM %s ; RUN: llvm-objdump -d %t2.0 | FileCheck --check-prefix=ASM %s
; ;
; ASM: main: ; ASM: main
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu" target triple = "x86_64-unknown-linux-gnu"

View File

@ -14,7 +14,7 @@
; Check that 'barAlias' and 'varAlias' were not inlined. ; Check that 'barAlias' and 'varAlias' were not inlined.
; RUN: llvm-objdump -d %t2.o.1 | FileCheck %s ; RUN: llvm-objdump -d %t2.o.1 | FileCheck %s
; CHECK: zed: ; CHECK: <zed>:
; CHECK-NEXT: {{.*}} pushq ; CHECK-NEXT: {{.*}} pushq
; CHECK-NEXT: {{.*}} callq 0 ; CHECK-NEXT: {{.*}} callq 0
; CHECK-NEXT: movq (%rip), %rax ; CHECK-NEXT: movq (%rip), %rax

View File

@ -8,10 +8,10 @@
; Check 'var2' was not inlined. ; Check 'var2' was not inlined.
; RUN: llvm-objdump -d %t2.o.1 | FileCheck %s ; RUN: llvm-objdump -d %t2.o.1 | FileCheck %s
; CHECK: testVar1: ; CHECK: <testVar1>:
; CHECK-NEXT: movl $10, %eax ; CHECK-NEXT: movl $10, %eax
; CHECK-NEXT: retq ; CHECK-NEXT: retq
; CHECK: testVar2: ; CHECK: <testVar2>:
; CHECK-NEXT: movl (%rip), %eax ; CHECK-NEXT: movl (%rip), %eax
; CHECK-NEXT: retq ; CHECK-NEXT: retq

View File

@ -4,7 +4,7 @@
; RUN: -r %t2.o,bar,x -save-temps ; RUN: -r %t2.o,bar,x -save-temps
; Check that 'foo' and 'bar' were not inlined. ; Check that 'foo' and 'bar' were not inlined.
; CHECK: zed: ; CHECK: <zed>:
; CHECK-NEXT: {{.*}} pushq %rbx ; CHECK-NEXT: {{.*}} pushq %rbx
; CHECK-NEXT: {{.*}} callq 0 <zed+0x6> ; CHECK-NEXT: {{.*}} callq 0 <zed+0x6>
; CHECK-NEXT: {{.*}} movl %eax, %ebx ; CHECK-NEXT: {{.*}} movl %eax, %ebx

View File

@ -14,7 +14,7 @@ target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16
define i32* @_start() nounwind readonly { define i32* @_start() nounwind readonly {
entry: entry:
; CHECK-SMALL-LABEL: _start: ; CHECK-SMALL-LABEL: <_start>:
; CHECK-SMALL: leaq (%rip), %rax ; CHECK-SMALL: leaq (%rip), %rax
ret i32* getelementptr ([0 x i32], [0 x i32]* @data, i64 0, i64 0) ret i32* getelementptr ([0 x i32], [0 x i32]* @data, i64 0, i64 0)
} }

View File

@ -14,7 +14,7 @@ target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16
define i32* @_start() nounwind readonly { define i32* @_start() nounwind readonly {
entry: entry:
; CHECK-LARGE-LABEL: _start: ; CHECK-LARGE-LABEL: <_start>:
; CHECK-LARGE: movabsq $0, %rax ; CHECK-LARGE: movabsq $0, %rax
ret i32* getelementptr ([0 x i32], [0 x i32]* @data, i64 0, i64 0) ret i32* getelementptr ([0 x i32], [0 x i32]* @data, i64 0, i64 0)
} }

View File

@ -9,7 +9,7 @@
; RUN: FileCheck --check-prefix=ASM %s < %t2 ; RUN: FileCheck --check-prefix=ASM %s < %t2
; RUN: llvm-lto -exported-symbol=main -filetype=obj -o %t2 %t1 ; RUN: llvm-lto -exported-symbol=main -filetype=obj -o %t2 %t1
; RUN: llvm-objdump -d %t2 | FileCheck --check-prefix=ASM %s ; RUN: llvm-objdump -d %t2 | FileCheck --check-prefix=ASM %s
; ASM: main: ; ASM: main{{>?}}:
; ;
target triple = "x86_64-unknown-linux-gnu" target triple = "x86_64-unknown-linux-gnu"

View File

@ -3,7 +3,7 @@
start: start:
.space 8 .space 8
end: end:
// CHECK-LABEL: end: // CHECK-LABEL: <end>:
adds w0, w1, #(end - start) adds w0, w1, #(end - start)
adds x0, x1, #(end - start) adds x0, x1, #(end - start)
@ -72,7 +72,7 @@ notprivate:
.type foo, @function .type foo, @function
foo: foo:
// CHECK-LABEL: foo: // CHECK-LABEL: <foo>:
add w0, w1, #(foo - .Lprivate2) add w0, w1, #(foo - .Lprivate2)
cmp w0, #(foo - .Lprivate2) cmp w0, #(foo - .Lprivate2)
@ -83,7 +83,7 @@ foo:
.type goo, @function .type goo, @function
goo: goo:
// CHECK-LABEL: goo: // CHECK-LABEL: <goo>:
add w0, w1, #(goo - foo) add w0, w1, #(goo - foo)
cmp w0, #(goo - foo) cmp w0, #(goo - foo)

View File

@ -6,14 +6,14 @@ loop_start:
s_call_b64 s[10:11], loop_end s_call_b64 s[10:11], loop_end
// GFX9: s_call_b64 s[10:11], loop_end ; encoding: [A,A,0x8a,0xba] // GFX9: s_call_b64 s[10:11], loop_end ; encoding: [A,A,0x8a,0xba]
// GFX9-NEXT: ; fixup A - offset: 0, value: loop_end, kind: fixup_si_sopp_br // GFX9-NEXT: ; fixup A - offset: 0, value: loop_end, kind: fixup_si_sopp_br
// BIN: loop_start: // BIN: <loop_start>:
// BIN-NEXT: s_call_b64 s[10:11], loop_end // 000000000000: BA8A0001 // BIN-NEXT: s_call_b64 s[10:11], loop_end // 000000000000: BA8A0001
s_call_b64 s[10:11], loop_start s_call_b64 s[10:11], loop_start
// GFX9: s_call_b64 s[10:11], loop_start ; encoding: [A,A,0x8a,0xba] // GFX9: s_call_b64 s[10:11], loop_start ; encoding: [A,A,0x8a,0xba]
// GFX9-NEXT: ; fixup A - offset: 0, value: loop_start, kind: fixup_si_sopp_br // GFX9-NEXT: ; fixup A - offset: 0, value: loop_start, kind: fixup_si_sopp_br
// BIN: s_call_b64 s[10:11], loop_start // 000000000004: BA8AFFFE // BIN: s_call_b64 s[10:11], loop_start // 000000000004: BA8AFFFE
// BIN: loop_end: // BIN: <loop_end>:
loop_end: loop_end:
s_nop 0 s_nop 0

View File

@ -5,20 +5,20 @@ loop_start:
s_branch loop_start s_branch loop_start
// VI: s_branch loop_start ; encoding: [A,A,0x82,0xbf] // VI: s_branch loop_start ; encoding: [A,A,0x82,0xbf]
// VI-NEXT: ; fixup A - offset: 0, value: loop_start, kind: fixup_si_sopp_br // VI-NEXT: ; fixup A - offset: 0, value: loop_start, kind: fixup_si_sopp_br
// BIN: loop_start: // BIN: <loop_start>:
// BIN-NEXT: s_branch loop_start // 000000000000: BF82FFFF // BIN-NEXT: s_branch loop_start // 000000000000: BF82FFFF
s_branch loop_end s_branch loop_end
// VI: s_branch loop_end ; encoding: [A,A,0x82,0xbf] // VI: s_branch loop_end ; encoding: [A,A,0x82,0xbf]
// VI-NEXT: ; fixup A - offset: 0, value: loop_end, kind: fixup_si_sopp_br // VI-NEXT: ; fixup A - offset: 0, value: loop_end, kind: fixup_si_sopp_br
// BIN: s_branch loop_end // 000000000004: BF820000 // BIN: s_branch loop_end // 000000000004: BF820000
// BIN: loop_end: // BIN: <loop_end>:
loop_end: loop_end:
s_branch gds s_branch gds
// VI: s_branch gds ; encoding: [A,A,0x82,0xbf] // VI: s_branch gds ; encoding: [A,A,0x82,0xbf]
// VI-NEXT: ; fixup A - offset: 0, value: gds, kind: fixup_si_sopp_br // VI-NEXT: ; fixup A - offset: 0, value: gds, kind: fixup_si_sopp_br
// BIN: s_branch gds // 000000000008: BF820000 // BIN: s_branch gds // 000000000008: BF820000
// BIN: gds: // BIN: <gds>:
gds: gds:
s_nop 0 s_nop 0

View File

@ -1,7 +1,7 @@
@ RUN: llvm-mc -triple armv7-apple-ios -filetype=obj -o %t %s @ RUN: llvm-mc -triple armv7-apple-ios -filetype=obj -o %t %s
@ RUN: llvm-objdump -d -r %t | FileCheck %s @ RUN: llvm-objdump -d -r %t | FileCheck %s
@ CHECK: _func: @ CHECK: <_func>:
@ CHECK: bl #0 <_func+0x8> @ CHECK: bl #0 <_func+0x8>
@ CHECK: ARM_RELOC_BR24 __text @ CHECK: ARM_RELOC_BR24 __text
@ CHECK: bl #-12 <_func> @ CHECK: bl #-12 <_func>

View File

@ -14,28 +14,28 @@
branch24t_0: branch24t_0:
b target b target
@ CHECK-ENCODING-LABEL: branch24t_0: @ CHECK-ENCODING-LABEL: <branch24t_0>:
@ CHECK-ENCODING-NEXT: b.w #0 @ CHECK-ENCODING-NEXT: b.w #0
.thumb_func .thumb_func
branch24t_1: branch24t_1:
bl target bl target
@ CHECK-ENCODING-LABEL: branch24t_1: @ CHECK-ENCODING-LABEL: <branch24t_1>:
@ CHECK-ENCODING-NEXR: bl #0 @ CHECK-ENCODING-NEXR: bl #0
.thumb_func .thumb_func
branch20t: branch20t:
bcc target bcc target
@ CHECK-ENCODING-LABEL: branch20t: @ CHECK-ENCODING-LABEL: <branch20t>:
@ CHECK-ENCODING-NEXT: blo.w #0 @ CHECK-ENCODING-NEXT: blo.w #0
.thumb_func .thumb_func
blx23t: blx23t:
blx target blx target
@ CHECK-ENCODING-LABEL: blx23t: @ CHECK-ENCODING-LABEL: <blx23t>:
@ CHECK-ENCODING-NEXT: blx #0 @ CHECK-ENCODING-NEXT: blx #0
.thumb_func .thumb_func
@ -44,7 +44,7 @@ mov32t:
movt r0, :upper16:target movt r0, :upper16:target
blx r0 blx r0
@ CHECK-ENCODING-LABEL: mov32t: @ CHECK-ENCODING-LABEL: <mov32t>:
@ CHECK-ENCODING-NEXT: movw r0, #0 @ CHECK-ENCODING-NEXT: movw r0, #0
@ CHECK-ENCODING-NEXT: movt r0, #0 @ CHECK-ENCODING-NEXT: movt r0, #0
@ CHECK-ENCODING-NEXT: blx r0 @ CHECK-ENCODING-NEXT: blx r0
@ -57,7 +57,7 @@ addr32:
.Laddr32: .Laddr32:
.long target .long target
@ CHECK-ENCODING-LABEL: addr32: @ CHECK-ENCODING-LABEL: <addr32>:
@ CHECK-ENCODING-NEXT: ldr r0, [pc, #4] @ CHECK-ENCODING-NEXT: ldr r0, [pc, #4]
@ CHECK-ENCODING-NEXT: bx r0 @ CHECK-ENCODING-NEXT: bx r0
@ CHECK-ENCODING-NEXT: trap @ CHECK-ENCODING-NEXT: trap
@ -72,7 +72,7 @@ addr32nb:
.Laddr32nb: .Laddr32nb:
.long target(imgrel) .long target(imgrel)
@ CHECK-ENCODING-LABEL: addr32nb: @ CHECK-ENCODING-LABEL: <addr32nb>:
@ CHECK-ENCODING-NEXT: ldr.w r0, [pc, #4] @ CHECK-ENCODING-NEXT: ldr.w r0, [pc, #4]
@ CHECK-ENCODING-NEXT: bx r0 @ CHECK-ENCODING-NEXT: bx r0
@ CHECK-ENCODING-NEXT: trap @ CHECK-ENCODING-NEXT: trap
@ -87,7 +87,7 @@ secrel:
.Lsecrel: .Lsecrel:
.long target(secrel32) .long target(secrel32)
@ CHECK-ENCODING-LABEL: secrel: @ CHECK-ENCODING-LABEL: <secrel>:
@ CHECK-ENCODING-NEXT: ldr.w r0, [pc, #4] @ CHECK-ENCODING-NEXT: ldr.w r0, [pc, #4]
@ CHECK-ENCODING-NEXT: bx r0 @ CHECK-ENCODING-NEXT: bx r0
@ CHECK-ENCODING-NEXT: trap @ CHECK-ENCODING-NEXT: trap

View File

@ -31,7 +31,7 @@ bar:
@OBJ: Disassembly of section .text: @OBJ: Disassembly of section .text:
@OBJ-EMPTY: @OBJ-EMPTY:
@OBJ-NEXT: barf: @OBJ-NEXT: <barf>:
@OBJ-NEXT: 0: f0 0f 0f e3 movw r0, #65520 @OBJ-NEXT: 0: f0 0f 0f e3 movw r0, #65520
@OBJ-NEXT: 00000000: R_ARM_MOVW_PREL_NC GOT @OBJ-NEXT: 00000000: R_ARM_MOVW_PREL_NC GOT
@OBJ-NEXT: 4: f4 0f 4f e3 movt r0, #65524 @OBJ-NEXT: 4: f4 0f 4f e3 movt r0, #65524
@ -45,7 +45,7 @@ bar:
@THUMB: Disassembly of section .text: @THUMB: Disassembly of section .text:
@THUMB-EMPTY: @THUMB-EMPTY:
@THUMB-NEXT: barf: @THUMB-NEXT: <barf>:
@THUMB-NEXT: 0: 4f f6 f0 70 movw r0, #65520 @THUMB-NEXT: 0: 4f f6 f0 70 movw r0, #65520
@THUMB-NEXT: 00000000: R_ARM_THM_MOVW_PREL_NC GOT @THUMB-NEXT: 00000000: R_ARM_THM_MOVW_PREL_NC GOT
@THUMB-NEXT: 4: cf f6 f4 70 movt r0, #65524 @THUMB-NEXT: 4: cf f6 f4 70 movt r0, #65524

View File

@ -15,7 +15,7 @@ AES_Te:
.word 1,2,3,4,5,6 .word 1,2,3,4,5,6
.word 1,2,3,4,5,6 .word 1,2,3,4,5,6
.word 1,2,3,4,5,6 .word 1,2,3,4,5,6
@ CHECK: AES_encrypt: @ CHECK: <AES_encrypt>:
AES_encrypt: AES_encrypt:
@ CHECK: sub r10, r3, #264 @ CHECK: sub r10, r3, #264
sub r10,r3,#(AES_encrypt-AES_Te) sub r10,r3,#(AES_encrypt-AES_Te)

View File

@ -1,6 +1,6 @@
; RUN: llvm-mc -filetype=obj -triple=avr %s | llvm-objdump -dr - | FileCheck %s ; RUN: llvm-mc -filetype=obj -triple=avr %s | llvm-objdump -dr - | FileCheck %s
; CHECK: bar: ; CHECK: <bar>:
; CHECK-NEXT: 00 00 nop ; CHECK-NEXT: 00 00 nop
; CHECK-NEXT: R_AVR_16 .text+0x2 ; CHECK-NEXT: R_AVR_16 .text+0x2
bar: bar:

View File

@ -134,7 +134,7 @@ Llabel0 :
r8 ^= r9 // BPF_XOR | BPF_X r8 ^= r9 // BPF_XOR | BPF_X
r9 = r10 // BPF_MOV | BPF_X r9 = r10 // BPF_MOV | BPF_X
r10 s>>= r0 // BPF_ARSH | BPF_X r10 s>>= r0 // BPF_ARSH | BPF_X
// CHECK:Llabel0: // CHECK: <Llabel0>:
// CHECK: 87 02 00 00 00 00 00 00 r2 = -r2 // CHECK: 87 02 00 00 00 00 00 00 r2 = -r2
// CHECK: 4f 54 00 00 00 00 00 00 r4 |= r5 // CHECK: 4f 54 00 00 00 00 00 00 r4 |= r5
// CHECK: 5f 65 00 00 00 00 00 00 r5 &= r6 // CHECK: 5f 65 00 00 00 00 00 00 r5 &= r6

View File

@ -21,7 +21,7 @@
# calls to __asan_report*, for which it is very important to have an accurate # calls to __asan_report*, for which it is very important to have an accurate
# stack trace. # stack trace.
# ASM: 0000000000000000 g: # ASM: 0000000000000000 <g>:
# ASM-NEXT: 0: 48 83 ec 28 subq $40, %rsp # ASM-NEXT: 0: 48 83 ec 28 subq $40, %rsp
# ASM-NEXT: 4: c7 05 fc ff ff ff 00 00 00 00 movl $0, -4(%rip) # ASM-NEXT: 4: c7 05 fc ff ff ff 00 00 00 00 movl $0, -4(%rip)
# Begin inline loc (matches cv_loc below) # Begin inline loc (matches cv_loc below)

View File

@ -47,7 +47,7 @@ Lfunc_begin0:
Lfunc_end0: Lfunc_end0:
# Check the disassembly so we have accurate instruction offsets in hex. # Check the disassembly so we have accurate instruction offsets in hex.
# ASM-LABEL: ?baz@@YAXXZ: # ASM-LABEL: <?baz@@YAXXZ>:
# ASM-NEXT: 0: {{.*}} pushl %eax # ASM-NEXT: 0: {{.*}} pushl %eax
# ASM-NEXT: 1: {{.*}} addl $6, 0 # ASM-NEXT: 1: {{.*}} addl $6, 0
# ASM-NEXT: 8: {{.*}} addl $4, 0 # ASM-NEXT: 8: {{.*}} addl $4, 0

View File

@ -6,7 +6,7 @@
# section afterwards. We had negative label difference assertions when .cv_loc # section afterwards. We had negative label difference assertions when .cv_loc
# bound tightly to the next instruction. # bound tightly to the next instruction.
# ASM: 00000000 _callit: # ASM: 00000000 <_callit>:
# begin inline { # begin inline {
# ASM-NEXT: 0: e8 00 00 00 00 calll 0 <_callit+0x5> # ASM-NEXT: 0: e8 00 00 00 00 calll 0 <_callit+0x5>
# ASM-NEXT: 5: 85 c0 testl %eax, %eax # ASM-NEXT: 5: 85 c0 testl %eax, %eax

View File

@ -17,7 +17,7 @@
# } # }
# ASM: 00000000 _callit: # ASM: 00000000 <_callit>:
# begin inline { # begin inline {
# ASM-NEXT: 0: e8 00 00 00 00 calll 0 <_callit+0x5> # ASM-NEXT: 0: e8 00 00 00 00 calll 0 <_callit+0x5>
# ASM-NEXT: 5: 85 c0 testl %eax, %eax # ASM-NEXT: 5: 85 c0 testl %eax, %eax

View File

@ -6,7 +6,7 @@
bar: bar:
// CHECK: Disassembly of section imul: // CHECK: Disassembly of section imul:
// CHECK-EMPTY: // CHECK-EMPTY:
// CHECK-NEXT: imul: // CHECK-NEXT: <imul>:
// CHECK-NEXT: 0: 66 69 db 00 00 imulw $0, %bx, %bx // CHECK-NEXT: 0: 66 69 db 00 00 imulw $0, %bx, %bx
// CHECK-NEXT: 5: 66 69 1c 25 00 00 00 00 00 00 imulw $0, 0, %bx // CHECK-NEXT: 5: 66 69 1c 25 00 00 00 00 00 00 imulw $0, 0, %bx
// CHECK-NEXT: f: 69 db 00 00 00 00 imull $0, %ebx, %ebx // CHECK-NEXT: f: 69 db 00 00 00 00 imull $0, %ebx, %ebx
@ -23,7 +23,7 @@ bar:
// CHECK: Disassembly of section and: // CHECK: Disassembly of section and:
// CHECK-EMPTY: // CHECK-EMPTY:
// CHECK-NEXT: and: // CHECK-NEXT: <and>:
// CHECK-NEXT: 0: 66 81 e3 00 00 andw $0, %bx // CHECK-NEXT: 0: 66 81 e3 00 00 andw $0, %bx
// CHECK-NEXT: 5: 66 81 24 25 00 00 00 00 00 00 andw $0, 0 // CHECK-NEXT: 5: 66 81 24 25 00 00 00 00 00 00 andw $0, 0
// CHECK-NEXT: f: 81 e3 00 00 00 00 andl $0, %ebx // CHECK-NEXT: f: 81 e3 00 00 00 00 andl $0, %ebx
@ -38,9 +38,7 @@ bar:
and $foo, %rbx and $foo, %rbx
andq $foo, bar andq $foo, bar
// CHECK: Disassembly of section or: // CHECK: <or>:
// CHECK-EMPTY:
// CHECK-NEXT: or:
// CHECK-NEXT: 0: 66 81 cb 00 00 orw $0, %bx // CHECK-NEXT: 0: 66 81 cb 00 00 orw $0, %bx
// CHECK-NEXT: 5: 66 81 0c 25 00 00 00 00 00 00 orw $0, 0 // CHECK-NEXT: 5: 66 81 0c 25 00 00 00 00 00 00 orw $0, 0
// CHECK-NEXT: f: 81 cb 00 00 00 00 orl $0, %ebx // CHECK-NEXT: f: 81 cb 00 00 00 00 orl $0, %ebx
@ -57,7 +55,7 @@ bar:
// CHECK: Disassembly of section xor: // CHECK: Disassembly of section xor:
// CHECK-EMPTY: // CHECK-EMPTY:
// CHECK-NEXT: xor: // CHECK-NEXT: <xor>:
// CHECK-NEXT: 0: 66 81 f3 00 00 xorw $0, %bx // CHECK-NEXT: 0: 66 81 f3 00 00 xorw $0, %bx
// CHECK-NEXT: 5: 66 81 34 25 00 00 00 00 00 00 xorw $0, 0 // CHECK-NEXT: 5: 66 81 34 25 00 00 00 00 00 00 xorw $0, 0
// CHECK-NEXT: f: 81 f3 00 00 00 00 xorl $0, %ebx // CHECK-NEXT: f: 81 f3 00 00 00 00 xorl $0, %ebx
@ -74,7 +72,7 @@ bar:
// CHECK: Disassembly of section add: // CHECK: Disassembly of section add:
// CHECK-EMPTY: // CHECK-EMPTY:
// CHECK-NEXT: add: // CHECK-NEXT: <add>:
// CHECK-NEXT: 0: 66 81 c3 00 00 addw $0, %bx // CHECK-NEXT: 0: 66 81 c3 00 00 addw $0, %bx
// CHECK-NEXT: 5: 66 81 04 25 00 00 00 00 00 00 addw $0, 0 // CHECK-NEXT: 5: 66 81 04 25 00 00 00 00 00 00 addw $0, 0
// CHECK-NEXT: f: 81 c3 00 00 00 00 addl $0, %ebx // CHECK-NEXT: f: 81 c3 00 00 00 00 addl $0, %ebx
@ -91,7 +89,7 @@ bar:
// CHECK: Disassembly of section sub: // CHECK: Disassembly of section sub:
// CHECK-EMPTY: // CHECK-EMPTY:
// CHECK-NEXT: sub: // CHECK-NEXT: <sub>:
// CHECK-NEXT: 0: 66 81 eb 00 00 subw $0, %bx // CHECK-NEXT: 0: 66 81 eb 00 00 subw $0, %bx
// CHECK-NEXT: 5: 66 81 2c 25 00 00 00 00 00 00 subw $0, 0 // CHECK-NEXT: 5: 66 81 2c 25 00 00 00 00 00 00 subw $0, 0
// CHECK-NEXT: f: 81 eb 00 00 00 00 subl $0, %ebx // CHECK-NEXT: f: 81 eb 00 00 00 00 subl $0, %ebx
@ -108,7 +106,7 @@ bar:
// CHECK: Disassembly of section cmp: // CHECK: Disassembly of section cmp:
// CHECK-EMPTY: // CHECK-EMPTY:
// CHECK-NEXT: cmp: // CHECK-NEXT: <cmp>:
// CHECK-NEXT: 0: 66 81 fb 00 00 cmpw $0, %bx // CHECK-NEXT: 0: 66 81 fb 00 00 cmpw $0, %bx
// CHECK-NEXT: 5: 66 81 3c 25 00 00 00 00 00 00 cmpw $0, 0 // CHECK-NEXT: 5: 66 81 3c 25 00 00 00 00 00 00 cmpw $0, 0
// CHECK-NEXT: f: 81 fb 00 00 00 00 cmpl $0, %ebx // CHECK-NEXT: f: 81 fb 00 00 00 00 cmpl $0, %ebx
@ -125,7 +123,7 @@ bar:
// CHECK: Disassembly of section push: // CHECK: Disassembly of section push:
// CHECK-EMPTY: // CHECK-EMPTY:
// CHECK-NEXT: push: // CHECK-NEXT: <push>:
// CHECK-NEXT: 0: 66 68 00 00 pushw $0 // CHECK-NEXT: 0: 66 68 00 00 pushw $0
// CHECK-NEXT: 4: 68 00 00 00 00 pushq $0 // CHECK-NEXT: 4: 68 00 00 00 00 pushq $0
.section push,"x" .section push,"x"
@ -134,7 +132,7 @@ bar:
// CHECK: Disassembly of section adc: // CHECK: Disassembly of section adc:
// CHECK-EMPTY: // CHECK-EMPTY:
// CHECK-NEXT: adc: // CHECK-NEXT: <adc>:
// CHECK-NEXT: 0: 66 81 d3 00 00 adcw $0, %bx // CHECK-NEXT: 0: 66 81 d3 00 00 adcw $0, %bx
// CHECK-NEXT: 5: 66 81 14 25 00 00 00 00 00 00 adcw $0, 0 // CHECK-NEXT: 5: 66 81 14 25 00 00 00 00 00 00 adcw $0, 0
// CHECK-NEXT: f: 81 d3 00 00 00 00 adcl $0, %ebx // CHECK-NEXT: f: 81 d3 00 00 00 00 adcl $0, %ebx
@ -151,7 +149,7 @@ bar:
// CHECK: Disassembly of section sbb: // CHECK: Disassembly of section sbb:
// CHECK-EMPTY: // CHECK-EMPTY:
// CHECK-NEXT: sbb: // CHECK-NEXT: <sbb>:
// CHECK-NEXT: 0: 66 81 db 00 00 sbbw $0, %bx // CHECK-NEXT: 0: 66 81 db 00 00 sbbw $0, %bx
// CHECK-NEXT: 5: 66 81 1c 25 00 00 00 00 00 00 sbbw $0, 0 // CHECK-NEXT: 5: 66 81 1c 25 00 00 00 00 00 00 sbbw $0, 0
// CHECK-NEXT: f: 81 db 00 00 00 00 sbbl $0, %ebx // CHECK-NEXT: f: 81 db 00 00 00 00 sbbl $0, %ebx

View File

@ -6,7 +6,7 @@
bar: bar:
// CHECK: Disassembly of section imul: // CHECK: Disassembly of section imul:
// CHECK-EMPTY: // CHECK-EMPTY:
// CHECK-NEXT: imul: // CHECK-NEXT: <imul>:
// CHECK-NEXT: 0: 66 6b db 80 imulw $-128, %bx, %bx // CHECK-NEXT: 0: 66 6b db 80 imulw $-128, %bx, %bx
// CHECK-NEXT: 4: 66 6b 1c 25 00 00 00 00 7f imulw $127, 0, %bx // CHECK-NEXT: 4: 66 6b 1c 25 00 00 00 00 7f imulw $127, 0, %bx
// CHECK-NEXT: d: 6b db 00 imull $0, %ebx, %ebx // CHECK-NEXT: d: 6b db 00 imull $0, %ebx, %ebx
@ -22,9 +22,7 @@ bar:
imul $42, bar, %rbx imul $42, bar, %rbx
// CHECK: Disassembly of section and: // CHECK: <and>:
// CHECK-EMPTY:
// CHECK-NEXT: and:
// CHECK-NEXT: 0: 66 83 e3 7f andw $127, %bx // CHECK-NEXT: 0: 66 83 e3 7f andw $127, %bx
// CHECK-NEXT: 4: 66 83 24 25 00 00 00 00 00 andw $0, 0 // CHECK-NEXT: 4: 66 83 24 25 00 00 00 00 00 andw $0, 0
// CHECK-NEXT: d: 83 e3 01 andl $1, %ebx // CHECK-NEXT: d: 83 e3 01 andl $1, %ebx
@ -39,9 +37,7 @@ bar:
and $42, %rbx and $42, %rbx
andq $-128, bar andq $-128, bar
// CHECK: Disassembly of section or: // CHECK: <or>:
// CHECK-EMPTY:
// CHECK-NEXT: or:
// CHECK-NEXT: 0: 66 83 cb 00 orw $0, %bx // CHECK-NEXT: 0: 66 83 cb 00 orw $0, %bx
// CHECK-NEXT: 4: 66 83 0c 25 00 00 00 00 01 orw $1, 0 // CHECK-NEXT: 4: 66 83 0c 25 00 00 00 00 01 orw $1, 0
// CHECK-NEXT: d: 83 cb ff orl $-1, %ebx // CHECK-NEXT: d: 83 cb ff orl $-1, %ebx
@ -56,9 +52,7 @@ bar:
or $-128, %rbx or $-128, %rbx
orq $127, bar orq $127, bar
// CHECK: Disassembly of section xor: // CHECK: <xor>:
// CHECK-EMPTY:
// CHECK-NEXT: xor:
// CHECK-NEXT: 0: 66 83 f3 01 xorw $1, %bx // CHECK-NEXT: 0: 66 83 f3 01 xorw $1, %bx
// CHECK-NEXT: 4: 66 83 34 25 00 00 00 00 ff xorw $-1, 0 // CHECK-NEXT: 4: 66 83 34 25 00 00 00 00 ff xorw $-1, 0
// CHECK-NEXT: d: 83 f3 2a xorl $42, %ebx // CHECK-NEXT: d: 83 f3 2a xorl $42, %ebx
@ -73,9 +67,7 @@ bar:
xor $127, %rbx xor $127, %rbx
xorq $0, bar xorq $0, bar
// CHECK: Disassembly of section add: // CHECK: <add>:
// CHECK-EMPTY:
// CHECK-NEXT: add:
// CHECK-NEXT: 0: 66 83 c3 ff addw $-1, %bx // CHECK-NEXT: 0: 66 83 c3 ff addw $-1, %bx
// CHECK-NEXT: 4: 66 83 04 25 00 00 00 00 2a addw $42, 0 // CHECK-NEXT: 4: 66 83 04 25 00 00 00 00 2a addw $42, 0
// CHECK-NEXT: d: 83 c3 80 addl $-128, %ebx // CHECK-NEXT: d: 83 c3 80 addl $-128, %ebx
@ -92,7 +84,7 @@ bar:
// CHECK: Disassembly of section sub: // CHECK: Disassembly of section sub:
// CHECK-EMPTY: // CHECK-EMPTY:
// CHECK-NEXT: sub: // CHECK-NEXT: <sub>:
// CHECK-NEXT: 0: 66 83 eb 2a subw $42, %bx // CHECK-NEXT: 0: 66 83 eb 2a subw $42, %bx
// CHECK-NEXT: 4: 66 83 2c 25 00 00 00 00 80 subw $-128, 0 // CHECK-NEXT: 4: 66 83 2c 25 00 00 00 00 80 subw $-128, 0
// CHECK-NEXT: d: 83 eb 7f subl $127, %ebx // CHECK-NEXT: d: 83 eb 7f subl $127, %ebx
@ -109,7 +101,7 @@ bar:
// CHECK: Disassembly of section cmp: // CHECK: Disassembly of section cmp:
// CHECK-EMPTY: // CHECK-EMPTY:
// CHECK-NEXT: cmp: // CHECK-NEXT: <cmp>:
// CHECK-NEXT: 0: 66 83 fb 80 cmpw $-128, %bx // CHECK-NEXT: 0: 66 83 fb 80 cmpw $-128, %bx
// CHECK-NEXT: 4: 66 83 3c 25 00 00 00 00 7f cmpw $127, 0 // CHECK-NEXT: 4: 66 83 3c 25 00 00 00 00 7f cmpw $127, 0
// CHECK-NEXT: d: 83 fb 00 cmpl $0, %ebx // CHECK-NEXT: d: 83 fb 00 cmpl $0, %ebx
@ -126,7 +118,7 @@ bar:
// CHECK: Disassembly of section push: // CHECK: Disassembly of section push:
// CHECK-EMPTY: // CHECK-EMPTY:
// CHECK-NEXT: push: // CHECK-NEXT: <push>:
// CHECK-NEXT: 0: 66 6a 80 pushw $-128 // CHECK-NEXT: 0: 66 6a 80 pushw $-128
// CHECK-NEXT: 3: 66 6a 7f pushw $127 // CHECK-NEXT: 3: 66 6a 7f pushw $127
// CHECK-NEXT: 6: 6a 80 pushq $-128 // CHECK-NEXT: 6: 6a 80 pushq $-128

View File

@ -6,7 +6,7 @@
bar: bar:
// CHECK: Disassembly of section imul: // CHECK: Disassembly of section imul:
// CHECK-EMPTY: // CHECK-EMPTY:
// CHECK-NEXT: imul: // CHECK-NEXT: <imul>:
// CHECK-NEXT: 0: 66 69 1d 00 00 00 00 00 00 imulw $0, (%rip), %bx // CHECK-NEXT: 0: 66 69 1d 00 00 00 00 00 00 imulw $0, (%rip), %bx
// CHECK-NEXT: 9: 69 1d 00 00 00 00 00 00 00 00 imull $0, (%rip), %ebx // CHECK-NEXT: 9: 69 1d 00 00 00 00 00 00 00 00 imull $0, (%rip), %ebx
// CHECK-NEXT: 13: 48 69 1d 00 00 00 00 00 00 00 00 imulq $0, (%rip), %rbx // CHECK-NEXT: 13: 48 69 1d 00 00 00 00 00 00 00 00 imulq $0, (%rip), %rbx
@ -16,9 +16,7 @@ bar:
imul $foo, bar(%rip), %rbx imul $foo, bar(%rip), %rbx
// CHECK: Disassembly of section and: // CHECK: <and>:
// CHECK-EMPTY:
// CHECK-NEXT: and:
// CHECK-NEXT: 0: 66 81 25 00 00 00 00 00 00 andw $0, (%rip) // CHECK-NEXT: 0: 66 81 25 00 00 00 00 00 00 andw $0, (%rip)
// CHECK-NEXT: 9: 81 25 00 00 00 00 00 00 00 00 andl $0, (%rip) // CHECK-NEXT: 9: 81 25 00 00 00 00 00 00 00 00 andl $0, (%rip)
// CHECK-NEXT: 13: 48 81 25 00 00 00 00 00 00 00 00 andq $0, (%rip) // CHECK-NEXT: 13: 48 81 25 00 00 00 00 00 00 00 00 andq $0, (%rip)
@ -27,9 +25,7 @@ bar:
andl $foo, bar(%rip) andl $foo, bar(%rip)
andq $foo, bar(%rip) andq $foo, bar(%rip)
// CHECK: Disassembly of section or: // CHECK: <or>:
// CHECK-EMPTY:
// CHECK-NEXT: or:
// CHECK-NEXT: 0: 66 81 0d 00 00 00 00 00 00 orw $0, (%rip) // CHECK-NEXT: 0: 66 81 0d 00 00 00 00 00 00 orw $0, (%rip)
// CHECK-NEXT: 9: 81 0d 00 00 00 00 00 00 00 00 orl $0, (%rip) // CHECK-NEXT: 9: 81 0d 00 00 00 00 00 00 00 00 orl $0, (%rip)
// CHECK-NEXT: 13: 48 81 0d 00 00 00 00 00 00 00 00 orq $0, (%rip) // CHECK-NEXT: 13: 48 81 0d 00 00 00 00 00 00 00 00 orq $0, (%rip)
@ -38,9 +34,7 @@ bar:
orl $foo, bar(%rip) orl $foo, bar(%rip)
orq $foo, bar(%rip) orq $foo, bar(%rip)
// CHECK: Disassembly of section xor: // CHECK: <xor>:
// CHECK-EMPTY:
// CHECK-NEXT: xor:
// CHECK-NEXT: 0: 66 81 35 00 00 00 00 00 00 xorw $0, (%rip) // CHECK-NEXT: 0: 66 81 35 00 00 00 00 00 00 xorw $0, (%rip)
// CHECK-NEXT: 9: 81 35 00 00 00 00 00 00 00 00 xorl $0, (%rip) // CHECK-NEXT: 9: 81 35 00 00 00 00 00 00 00 00 xorl $0, (%rip)
// CHECK-NEXT: 13: 48 81 35 00 00 00 00 00 00 00 00 xorq $0, (%rip) // CHECK-NEXT: 13: 48 81 35 00 00 00 00 00 00 00 00 xorq $0, (%rip)
@ -49,9 +43,7 @@ bar:
xorl $foo, bar(%rip) xorl $foo, bar(%rip)
xorq $foo, bar(%rip) xorq $foo, bar(%rip)
// CHECK: Disassembly of section add: // CHECK: <add>:
// CHECK-EMPTY:
// CHECK-NEXT: add:
// CHECK-NEXT: 0: 66 81 05 00 00 00 00 00 00 addw $0, (%rip) // CHECK-NEXT: 0: 66 81 05 00 00 00 00 00 00 addw $0, (%rip)
// CHECK-NEXT: 9: 81 05 00 00 00 00 00 00 00 00 addl $0, (%rip) // CHECK-NEXT: 9: 81 05 00 00 00 00 00 00 00 00 addl $0, (%rip)
// CHECK-NEXT: 13: 48 81 05 00 00 00 00 00 00 00 00 addq $0, (%rip) // CHECK-NEXT: 13: 48 81 05 00 00 00 00 00 00 00 00 addq $0, (%rip)
@ -60,9 +52,7 @@ bar:
addl $foo, bar(%rip) addl $foo, bar(%rip)
addq $foo, bar(%rip) addq $foo, bar(%rip)
// CHECK: Disassembly of section sub: // CHECK: <sub>:
// CHECK-EMPTY:
// CHECK-NEXT: sub:
// CHECK-NEXT: 0: 66 81 2d 00 00 00 00 00 00 subw $0, (%rip) // CHECK-NEXT: 0: 66 81 2d 00 00 00 00 00 00 subw $0, (%rip)
// CHECK-NEXT: 9: 81 2d 00 00 00 00 00 00 00 00 subl $0, (%rip) // CHECK-NEXT: 9: 81 2d 00 00 00 00 00 00 00 00 subl $0, (%rip)
// CHECK-NEXT: 13: 48 81 2d 00 00 00 00 00 00 00 00 subq $0, (%rip) // CHECK-NEXT: 13: 48 81 2d 00 00 00 00 00 00 00 00 subq $0, (%rip)
@ -71,9 +61,7 @@ bar:
subl $foo, bar(%rip) subl $foo, bar(%rip)
subq $foo, bar(%rip) subq $foo, bar(%rip)
// CHECK: Disassembly of section cmp: // CHECK: <cmp>:
// CHECK-EMPTY:
// CHECK-NEXT: cmp:
// CHECK-NEXT: 0: 66 81 3d 00 00 00 00 00 00 cmpw $0, (%rip) // CHECK-NEXT: 0: 66 81 3d 00 00 00 00 00 00 cmpw $0, (%rip)
// CHECK-NEXT: 9: 81 3d 00 00 00 00 00 00 00 00 cmpl $0, (%rip) // CHECK-NEXT: 9: 81 3d 00 00 00 00 00 00 00 00 cmpl $0, (%rip)
// CHECK-NEXT: 13: 48 81 3d 00 00 00 00 00 00 00 00 cmpq $0, (%rip) // CHECK-NEXT: 13: 48 81 3d 00 00 00 00 00 00 00 00 cmpq $0, (%rip)

View File

@ -6,7 +6,7 @@
// CHECK: Disassembly of section push8: // CHECK: Disassembly of section push8:
// CHECK-EMPTY: // CHECK-EMPTY:
// CHECK-NEXT: push8: // CHECK-NEXT: <push8>:
// CHECK-NEXT: 0: 66 6a 80 pushw $-128 // CHECK-NEXT: 0: 66 6a 80 pushw $-128
// CHECK-NEXT: 3: 66 6a 7f pushw $127 // CHECK-NEXT: 3: 66 6a 7f pushw $127
// CHECK-NEXT: 6: 6a 80 pushl $-128 // CHECK-NEXT: 6: 6a 80 pushl $-128
@ -19,7 +19,7 @@
// CHECK: Disassembly of section push32: // CHECK: Disassembly of section push32:
// CHECK-EMPTY: // CHECK-EMPTY:
// CHECK-NEXT: push32: // CHECK-NEXT: <push32>:
// CHECK-NEXT: 0: 66 68 00 00 pushw $0 // CHECK-NEXT: 0: 66 68 00 00 pushw $0
// CHECK-NEXT: 4: 68 00 00 00 00 pushl $0 // CHECK-NEXT: 4: 68 00 00 00 00 pushl $0
.section push32,"x" .section push32,"x"

View File

@ -4,5 +4,5 @@
.I1: .I1:
nop nop
# CHECK: .I1: # CHECK: <.I1>:
# CHECK: nop # CHECK: nop

View File

@ -2,7 +2,7 @@
# RUN: llvm-objdump -d -r -z - | FileCheck -check-prefixes=ALL,O32 %s # RUN: llvm-objdump -d -r -z - | FileCheck -check-prefixes=ALL,O32 %s
# RUN: llvm-mc -triple mips-unknown-linux -target-abi o32 %s | \ # RUN: llvm-mc -triple mips-unknown-linux -target-abi o32 %s | \
# RUN: FileCheck -check-prefixes=ALL,ASM,ASM-O32 %s # RUN: FileCheck -check-prefixes=ASM,ASM-O32 %s
# FIXME: Now we check .cpsetup expansion for `-mno-shared` case only. # FIXME: Now we check .cpsetup expansion for `-mno-shared` case only.
# We also need to implement/check the `-mshared` case. # We also need to implement/check the `-mshared` case.
@ -11,14 +11,14 @@
# RUN: FileCheck -check-prefixes=ALL,NXX,N32 %s # RUN: FileCheck -check-prefixes=ALL,NXX,N32 %s
# RUN: llvm-mc -triple mips64-unknown-linux -target-abi n32 %s | \ # RUN: llvm-mc -triple mips64-unknown-linux -target-abi n32 %s | \
# RUN: FileCheck -check-prefixes=ALL,ASM,ASM-N32 %s # RUN: FileCheck -check-prefixes=ASM,ASM-N32 %s
# RUN: llvm-mc -triple mips64-unknown-linux %s -filetype=obj -o - | \ # RUN: llvm-mc -triple mips64-unknown-linux %s -filetype=obj -o - | \
# RUN: llvm-objdump -d -r -z - | \ # RUN: llvm-objdump -d -r -z - | \
# RUN: FileCheck -check-prefixes=ALL,NXX,N64 %s # RUN: FileCheck -check-prefixes=ALL,NXX,N64 %s
# RUN: llvm-mc -triple mips64-unknown-linux %s | \ # RUN: llvm-mc -triple mips64-unknown-linux %s | \
# RUN: FileCheck -check-prefixes=ALL,ASM,ASM-N64 %s # RUN: FileCheck -check-prefixes=ASM,ASM-N64 %s
.text .text
.option pic2 .option pic2
@ -28,7 +28,8 @@ t1:
.cpreturn .cpreturn
nop nop
# ALL-LABEL: t1: # ALL-LABEL: <t1>:
# ASM-LABEL: t1:
# O32-NOT: __cerror # O32-NOT: __cerror
@ -45,7 +46,7 @@ t1:
# ALL-NEXT: nop # ALL-NEXT: nop
# ASM-NEXT: .cpreturn # ASM: .cpreturn
# NXX-NEXT: ld $gp, 8($sp) # NXX-NEXT: ld $gp, 8($sp)
# ALL-NEXT: nop # ALL-NEXT: nop
@ -56,7 +57,8 @@ t2:
.cpreturn .cpreturn
nop nop
# ALL-LABEL: t2: # ALL-LABEL: <t2>:
# ASM-LABEL: t2:
# O32-NOT: __cerror # O32-NOT: __cerror
@ -73,7 +75,7 @@ t2:
# ALL-NEXT: nop # ALL-NEXT: nop
# ASM-NEXT: .cpreturn # ASM: .cpreturn
# NXX-NEXT: move $gp, $2 # NXX-NEXT: move $gp, $2
# ALL-NEXT: nop # ALL-NEXT: nop
@ -90,7 +92,8 @@ t3:
nop nop
sub $3, $3, $2 sub $3, $3, $2
# ALL-LABEL: t3: # ALL-LABEL: <t3>:
# ASM-LABEL: t3:
# ALL-NEXT: nop # ALL-NEXT: nop
# O32-NEXT: nop # O32-NEXT: nop
@ -129,7 +132,8 @@ t4:
# by checking that the next instruction after the first # by checking that the next instruction after the first
# nop is also a 'nop'. # nop is also a 'nop'.
# ALL-LABEL: t4: # ALL-LABEL: <t4>:
# ASM-LABEL: t4:
# NXX-NEXT: nop # NXX-NEXT: nop
# NXX-NEXT: nop # NXX-NEXT: nop
@ -147,7 +151,8 @@ t5:
.cpsetup $25, ((8*4) - (3*8)), __cerror .cpsetup $25, ((8*4) - (3*8)), __cerror
nop nop
# ALL-LABEL: t5: # ALL-LABEL: <t5>:
# ASM-LABEL: t5:
# O32-NOT: __cerror # O32-NOT: __cerror
@ -171,7 +176,8 @@ IMM_8 = 8
.cpreturn .cpreturn
nop nop
# ALL-LABEL: t1b: # ALL-LABEL: <t1b>:
# ASM-LABEL: t1b:
# ASM-NEXT: .set IMM_8, 8 # ASM-NEXT: .set IMM_8, 8
# O32-NOT: __cerror # O32-NOT: __cerror
@ -189,7 +195,7 @@ IMM_8 = 8
# ALL-NEXT: nop # ALL-NEXT: nop
# ASM-NEXT: .cpreturn # ASM: .cpreturn
# NXX-NEXT: ld $gp, 8($sp) # NXX-NEXT: ld $gp, 8($sp)
# ALL-NEXT: nop # ALL-NEXT: nop

View File

@ -10,7 +10,7 @@
# relocations. # relocations.
test1: test1:
# CHECK-LABEL: test1: # CHECK-LABEL: <test1>:
lui $5, %highest(func) lui $5, %highest(func)
daddiu $5, $5, %higher(func) daddiu $5, $5, %higher(func)
@ -27,7 +27,7 @@ test1:
# ((x + 0x800080008000) >> 48) & 0xffff (highest). # ((x + 0x800080008000) >> 48) & 0xffff (highest).
test2: test2:
# CHECK-LABEL: test2: # CHECK-LABEL: <test2>:
# Check the case where relocations are not modified by adding +1. The constant # Check the case where relocations are not modified by adding +1. The constant
# is chosen so that it is just below the value that triggers the addition of +1 # is chosen so that it is just below the value that triggers the addition of +1

View File

@ -1,19 +1,19 @@
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o - \ # RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o - \
# RUN: | llvm-objdump -d - | FileCheck %s # RUN: | llvm-objdump -d - | FileCheck %s
# CHECK: foo: # CHECK: <foo>:
# CHECK-NEXT: 0: 0c 00 00 02 jal 8 <loc1> # CHECK-NEXT: 0: 0c 00 00 02 jal 8 <loc1>
# CHECK-NEXT: 4: 00 00 00 00 nop # CHECK-NEXT: 4: 00 00 00 00 nop
# #
# CHECK: loc1: # CHECK: <loc1>:
# CHECK-NEXT: 8: 0c 00 00 06 jal 24 <loc3> # CHECK-NEXT: 8: 0c 00 00 06 jal 24 <loc3>
# CHECK-NEXT: c: 00 00 00 00 nop # CHECK-NEXT: c: 00 00 00 00 nop
# #
# CHECK: loc2: # CHECK: <loc2>:
# CHECK-NEXT: 10: 10 00 ff fd b -8 <loc1> # CHECK-NEXT: 10: 10 00 ff fd b -8 <loc1>
# CHECK-NEXT: 14: 00 00 00 00 nop # CHECK-NEXT: 14: 00 00 00 00 nop
# #
# CHECK: loc3: # CHECK: <loc3>:
# CHECK-NEXT: 18: 10 43 ff fd beq $2, $3, -8 <loc2> # CHECK-NEXT: 18: 10 43 ff fd beq $2, $3, -8 <loc2>
# CHECK-NEXT: 1c: 00 00 00 00 nop # CHECK-NEXT: 1c: 00 00 00 00 nop
# CHECK-NEXT: 20: 04 11 ff f9 bal -24 <loc1> # CHECK-NEXT: 20: 04 11 ff f9 bal -24 <loc1>

View File

@ -5,7 +5,7 @@
# Force us into the second 256 MB region with a non-zero instruction index # Force us into the second 256 MB region with a non-zero instruction index
.org 256*1024*1024 + 12 .org 256*1024*1024 + 12
# CHECK-LABEL: 1000000c foo: # CHECK-LABEL: 1000000c <foo>:
# CHECK-NEXT: 1000000c: d4 00 00 06 j 12 <foo> # CHECK-NEXT: 1000000c: d4 00 00 06 j 12 <foo>
# CHECK-NEXT: 10000010: f4 00 00 08 jal 16 <foo+0x4> # CHECK-NEXT: 10000010: f4 00 00 08 jal 16 <foo+0x4>
# CHECK-NEXT: 10000014: f0 00 00 05 jalx 20 <foo+0x8> # CHECK-NEXT: 10000014: f0 00 00 05 jalx 20 <foo+0x8>

View File

@ -7,7 +7,7 @@
# Force us into the second 256 MB region with a non-zero instruction index # Force us into the second 256 MB region with a non-zero instruction index
.org 256*1024*1024 + 12 .org 256*1024*1024 + 12
# CHECK-LABEL: 1000000c foo: # CHECK-LABEL: 1000000c <foo>:
# CHECK-NEXT: 1000000c: 08 00 00 03 j 12 <foo> # CHECK-NEXT: 1000000c: 08 00 00 03 j 12 <foo>
# CHECK-NEXT: 10000010: 0c 00 00 04 jal 16 <foo+0x4> # CHECK-NEXT: 10000010: 0c 00 00 04 jal 16 <foo+0x4>
# CHECK-NEXT: 10000014: 74 00 00 05 jalx 20 <foo+0x8> # CHECK-NEXT: 10000014: 74 00 00 05 jalx 20 <foo+0x8>

View File

@ -17,7 +17,7 @@ test1:
jr $ra jr $ra
nop nop
# CHECK-LABEL: test1: # CHECK-LABEL: <test1>:
# CHECK: and $4, $4, $14 # CHECK: and $4, $4, $14
# CHECK-NEXT: jr $4 # CHECK-NEXT: jr $4
@ -54,7 +54,7 @@ test2:
lw $4, 0($sp) lw $4, 0($sp)
lw $4, 0($t8) lw $4, 0($t8)
# CHECK-LABEL: test2: # CHECK-LABEL: <test2>:
# CHECK: and $1, $1, $15 # CHECK: and $1, $1, $15
# CHECK-NEXT: lb $4, 0($1) # CHECK-NEXT: lb $4, 0($1)
@ -122,7 +122,7 @@ test3:
sw $4, 0($sp) sw $4, 0($sp)
sw $4, 0($t8) sw $4, 0($t8)
# CHECK-LABEL: test3: # CHECK-LABEL: <test3>:
# CHECK: and $1, $1, $15 # CHECK: and $1, $1, $15
# CHECK-NEXT: sb $4, 0($1) # CHECK-NEXT: sb $4, 0($1)
@ -179,7 +179,7 @@ test4:
lw $sp, 123($sp) lw $sp, 123($sp)
sw $sp, 123($sp) sw $sp, 123($sp)
# CHECK-LABEL: test4: # CHECK-LABEL: <test4>:
# CHECK: addiu $sp, $sp, 24 # CHECK: addiu $sp, $sp, 24
# CHECK-NEXT: and $sp, $sp, $15 # CHECK-NEXT: and $sp, $sp, $15
@ -254,7 +254,7 @@ test5:
# CHECK: nop # CHECK: nop
# CHECK-NEXT: nop # CHECK-NEXT: nop
# CHECK-LABEL: test5: # CHECK-LABEL: <test5>:
# CHECK-NEXT: jal # CHECK-NEXT: jal
# CHECK-NEXT: addiu $4, $zero, 1 # CHECK-NEXT: addiu $4, $zero, 1
@ -304,7 +304,7 @@ test6:
# CHECK: nop # CHECK: nop
# CHECK-NEXT: nop # CHECK-NEXT: nop
# CHECK-LABEL: test6: # CHECK-LABEL: <test6>:
# CHECK-NEXT: jal # CHECK-NEXT: jal
# CHECK-NEXT: sw $4, 0($sp) # CHECK-NEXT: sw $4, 0($sp)

View File

@ -9,10 +9,10 @@
a: a:
nop nop
# CHECK-NOT: a: # CHECK-NOT: a:
# CHECK: foo: # CHECK: <foo>:
b: b:
nop nop
# CHECK-NOT: b: # CHECK-NOT: b:
# CHECK-NOT: foo: # CHECK-NOT: foo:
# CHECK: bar: # CHECK: <bar>:

View File

@ -11,7 +11,7 @@ entry:
ret i64 %conv ret i64 %conv
} }
; CHECK-LABEL: foo_2: ; CHECK-LABEL: <foo_2>:
; CHECK: dext ${{[a-z0-9]+}}, ${{[a-z0-9]+}}, 0, 32 ; CHECK: dext ${{[a-z0-9]+}}, ${{[a-z0-9]+}}, 0, 32
define i64 @foo_2(i32 %ival_2) nounwind readnone { define i64 @foo_2(i32 %ival_2) nounwind readnone {

View File

@ -22,7 +22,7 @@ test:
.comm vecB, 16, 16 .comm vecB, 16, 16
# CHECK: Disassembly of section .text: # CHECK: Disassembly of section .text:
# CHECK-LABEL: test: # CHECK-LABEL: <test>:
# CHECK-NEXT: addis 2, 12, 0 # CHECK-NEXT: addis 2, 12, 0
# CHECK-NEXT: R_PPC64_REL16_HA .TOC. # CHECK-NEXT: R_PPC64_REL16_HA .TOC.
# CHECK-NEXT: addi 2, 2, 0 # CHECK-NEXT: addi 2, 2, 0

View File

@ -53,12 +53,12 @@ paddi 1, 2, 8589934576, 0
addi 2, 3, 15 # 60 addi 2, 3, 15 # 60
# CHECK-BE: b8: 38 43 00 0f # CHECK-BE: b8: 38 43 00 0f
# CHECK-BE-NEXT: bc: 60 00 00 00 nop # CHECK-BE-NEXT: bc: 60 00 00 00 nop
# CHECK-BE: LAB1: # CHECK-BE: <LAB1>:
# CHECK-BE-NEXT: c0: 06 01 ff ff # CHECK-BE-NEXT: c0: 06 01 ff ff
# CHECK-BE-NEXT: c4: 38 22 ff f0 # CHECK-BE-NEXT: c4: 38 22 ff f0
# CHECK-LE: b8: 0f 00 43 38 # CHECK-LE: b8: 0f 00 43 38
# CHECK-LE-NEXT: bc: 00 00 00 60 nop # CHECK-LE-NEXT: bc: 00 00 00 60 nop
# CHECK-LE: LAB1: # CHECK-LE: <LAB1>:
# CHECK-LE-NEXT: c0: ff ff 01 06 # CHECK-LE-NEXT: c0: ff ff 01 06
# CHECK-LE-NEXT: c4: f0 ff 22 38 # CHECK-LE-NEXT: c4: f0 ff 22 38
LAB1: paddi 1, 2, 8589934576, 0 LAB1: paddi 1, 2, 8589934576, 0
@ -70,12 +70,12 @@ paddi 1, 2, 8589934576, 0
paddi 1, 2, 8589934576, 0 paddi 1, 2, 8589934576, 0
addi 2, 3, 15 # 60 addi 2, 3, 15 # 60
# CHECK-BE: f8: 38 43 00 0f # CHECK-BE: f8: 38 43 00 0f
# CHECK-BE: LAB2: # CHECK-BE: <LAB2>:
# CHECK-BE-NEXT: fc: 60 00 00 00 nop # CHECK-BE-NEXT: fc: 60 00 00 00 nop
# CHECK-BE-NEXT: 100: 06 01 ff ff # CHECK-BE-NEXT: 100: 06 01 ff ff
# CHECK-BE-NEXT: 104: 38 22 ff f0 # CHECK-BE-NEXT: 104: 38 22 ff f0
# CHECK-LE: f8: 0f 00 43 38 # CHECK-LE: f8: 0f 00 43 38
# CHECK-LE: LAB2: # CHECK-LE: <LAB2>:
# CHECK-LE-NEXT: fc: 00 00 00 60 nop # CHECK-LE-NEXT: fc: 00 00 00 60 nop
# CHECK-LE-NEXT: 100: ff ff 01 06 # CHECK-LE-NEXT: 100: ff ff 01 06
# CHECK-LE-NEXT: 104: f0 ff 22 38 # CHECK-LE-NEXT: 104: f0 ff 22 38

View File

@ -21,17 +21,17 @@
.option pop .option pop
la a1, another_symbol la a1, another_symbol
# ASM-LABEL: .Lpcrel_hi0: # ASM-LABEL: .Lpcrel_hi0{{>?}}:
# ASM-NEXT: auipc a0, %pcrel_hi(a_symbol) # ASM-NEXT: auipc a0, %pcrel_hi(a_symbol)
# ASM-NEXT: addi a0, a0, %pcrel_lo(.Lpcrel_hi0) # ASM-NEXT: addi a0, a0, %pcrel_lo(.Lpcrel_hi0)
# ASM-LABEL: .Lpcrel_hi1: # ASM-LABEL: .Lpcrel_hi1{{>?}}:
# ASM-NEXT: auipc a1, %pcrel_hi(another_symbol) # ASM-NEXT: auipc a1, %pcrel_hi(another_symbol)
# ASM-NEXT: addi a1, a1, %pcrel_lo(.Lpcrel_hi1) # ASM-NEXT: addi a1, a1, %pcrel_lo(.Lpcrel_hi1)
# DISASM-LABEL: .Lpcrel_hi0: # DISASM-LABEL: <.Lpcrel_hi0>:
# DISASM-NEXT: auipc a0, 0 # DISASM-NEXT: auipc a0, 0
# DISASM-NEXT: addi a0, a0, 0 # DISASM-NEXT: addi a0, a0, 0
# DISASM-LABEL:.Lpcrel_hi1: # DISASM-LABEL: <.Lpcrel_hi1>:
# DISASM-NEXT: auipc a1, 0 # DISASM-NEXT: auipc a1, 0
# DISASM-NEXT: addi a1, a1, 0 # DISASM-NEXT: addi a1, a1, 0
@ -43,17 +43,17 @@
2:auipc a1, %pcrel_hi(another_symbol) 2:auipc a1, %pcrel_hi(another_symbol)
addi a1, a1, %pcrel_lo(2b) addi a1, a1, %pcrel_lo(2b)
# ASM-LABEL: .Ltmp0: # ASM-LABEL: .Ltmp0{{>?}}:
# ASM-NEXT: auipc a0, %pcrel_hi(a_symbol) # ASM-NEXT: auipc a0, %pcrel_hi(a_symbol)
# ASM-NEXT: addi a0, a0, %pcrel_lo(.Ltmp0) # ASM-NEXT: addi a0, a0, %pcrel_lo(.Ltmp0)
# ASM-LABEL: .Ltmp1: # ASM-LABEL: .Ltmp1{{>?}}:
# ASM-NEXT: auipc a1, %pcrel_hi(another_symbol) # ASM-NEXT: auipc a1, %pcrel_hi(another_symbol)
# ASM-NEXT: addi a1, a1, %pcrel_lo(.Ltmp1) # ASM-NEXT: addi a1, a1, %pcrel_lo(.Ltmp1)
# DISASM-LABEL: .Ltmp0: # DISASM-LABEL: .Ltmp0{{>?}}:
# DISASM-NEXT: auipc a0, 0 # DISASM-NEXT: auipc a0, 0
# DISASM-NEXT: addi a0, a0, 0 # DISASM-NEXT: addi a0, a0, 0
# DISASM-LABEL: .Ltmp1: # DISASM-LABEL: .Ltmp1{{>?}}:
# DISASM-NEXT: auipc a1, 0 # DISASM-NEXT: auipc a1, 0
# DISASM-NEXT: addi a1, a1, 0 # DISASM-NEXT: addi a1, a1, 0
@ -66,19 +66,19 @@
local_symbol1: local_symbol1:
nop nop
# ASM-LABEL: .Lpcrel_hi2: # ASM-LABEL: .Lpcrel_hi2{{>?}}:
# ASM-NEXT: auipc a0, %pcrel_hi(a_symbol) # ASM-NEXT: auipc a0, %pcrel_hi(a_symbol)
# ASM-NEXT: addi a0, a0, %pcrel_lo(.Lpcrel_hi2) # ASM-NEXT: addi a0, a0, %pcrel_lo(.Lpcrel_hi2)
# ASM-LABEL: .Lpcrel_hi3: # ASM-LABEL: .Lpcrel_hi3{{>?}}:
# ASM-NEXT: auipc a1, %pcrel_hi(local_symbol1) # ASM-NEXT: auipc a1, %pcrel_hi(local_symbol1)
# ASM-NEXT: addi a1, a1, %pcrel_lo(.Lpcrel_hi3) # ASM-NEXT: addi a1, a1, %pcrel_lo(.Lpcrel_hi3)
# DISASM-LABEL: .Lpcrel_hi2: # DISASM-LABEL: .Lpcrel_hi2{{>?}}:
# DISASM-NEXT: auipc a0, 0 # DISASM-NEXT: auipc a0, 0
# DISASM-NEXT: addi a0, a0, 0 # DISASM-NEXT: addi a0, a0, 0
# DISASM-NORELAX-NEXT: auipc a1, 0 # DISASM-NORELAX-NEXT: auipc a1, 0
# DISASM-NORELAX-NEXT: addi a1, a1, 8 # DISASM-NORELAX-NEXT: addi a1, a1, 8
# DISASM-RELAX-LABEL: .Lpcrel_hi3: # DISASM-RELAX-LABEL: .Lpcrel_hi3{{>?}}:
# DISASM-RELAX-NEXT: auipc a1, 0 # DISASM-RELAX-NEXT: auipc a1, 0
# DISASM-RELAX-NEXT: addi a1, a1, 0 # DISASM-RELAX-NEXT: addi a1, a1, 0
@ -93,18 +93,18 @@ local_symbol1:
local_symbol2: local_symbol2:
nop nop
# ASM-LABEL: .Ltmp2: # ASM-LABEL: .Ltmp2{{>?}}:
# ASM-NEXT: auipc a0, %pcrel_hi(a_symbol) # ASM-NEXT: auipc a0, %pcrel_hi(a_symbol)
# ASM-NEXT: addi a0, a0, %pcrel_lo(.Ltmp2) # ASM-NEXT: addi a0, a0, %pcrel_lo(.Ltmp2)
# ASM-LABEL: .Ltmp3: # ASM-LABEL: .Ltmp3{{>?}}:
# ASM-NEXT: auipc a1, %pcrel_hi(local_symbol2) # ASM-NEXT: auipc a1, %pcrel_hi(local_symbol2)
# ASM-NEXT: addi a1, a1, %pcrel_lo(.Ltmp3) # ASM-NEXT: addi a1, a1, %pcrel_lo(.Ltmp3)
# DISASM-LABEL: .Ltmp2: # DISASM-LABEL: .Ltmp2{{>?}}:
# DISASM-NEXT: auipc a0, 0 # DISASM-NEXT: auipc a0, 0
# DISASM-NEXT: addi a0, a0, 0 # DISASM-NEXT: addi a0, a0, 0
# DISASM-NORELAX-NEXT: auipc a1, 0 # DISASM-NORELAX-NEXT: auipc a1, 0
# DISASM-NORELAX-NEXT: addi a1, a1, 8 # DISASM-NORELAX-NEXT: addi a1, a1, 8
# DISASM-RELAX-LABEL: .Ltmp3: # DISASM-RELAX-LABEL: .Ltmp3{{>?}}:
# DISASM-RELAX-NEXT: auipc a1, 0 # DISASM-RELAX-NEXT: auipc a1, 0
# DISASM-RELAX-NEXT: addi a1, a1, 0 # DISASM-RELAX-NEXT: addi a1, a1, 0

View File

@ -19,7 +19,7 @@
! REL: ] ! REL: ]
! OBJDUMP: foo: ! OBJDUMP: <foo>:
foo: foo:
! Here we use two different sequences to get the address of a static TLS variable 'Local' ! Here we use two different sequences to get the address of a static TLS variable 'Local'
! (note - there is no intent to have valid assembler function here, ! (note - there is no intent to have valid assembler function here,

View File

@ -15,7 +15,7 @@
.insn rie,0xec0000000076,%r1,%r2,12 .insn rie,0xec0000000076,%r1,%r2,12
#CHECK: ec 12 00 03 00 64 cgrj %r1, %r2, 0, 0x12 #CHECK: ec 12 00 03 00 64 cgrj %r1, %r2, 0, 0x12
.insn rie,0xec0000000064,%r1,%r2,label.rie .insn rie,0xec0000000064,%r1,%r2,label.rie
#CHECK: label.rie: #CHECK: <label.rie>:
label.rie: label.rie:
# GAS considers this instruction's immediate operand to be PC relative. # GAS considers this instruction's immediate operand to be PC relative.
@ -23,7 +23,7 @@ label.rie:
.insn ril,0xc60d00000000,%r1,12 .insn ril,0xc60d00000000,%r1,12
#CHECK: c6 18 00 00 00 03 cgrl %r1, 0x1e #CHECK: c6 18 00 00 00 03 cgrl %r1, 0x1e
.insn ril,0xc60800000000,%r1,label.ril .insn ril,0xc60800000000,%r1,label.ril
#CHECK: label.ril: #CHECK: <label.ril>:
label.ril: label.ril:
#CHECK: c2 2b 80 00 00 00 alfi %r2, 2147483648 #CHECK: c2 2b 80 00 00 00 alfi %r2, 2147483648
@ -58,7 +58,7 @@ label.ril:
.insn rsi,0x84000000,%r1,%r3,8 .insn rsi,0x84000000,%r1,%r3,8
#CHECK: 84 13 00 02 brxh %r1, %r3, 0x4a #CHECK: 84 13 00 02 brxh %r1, %r3, 0x4a
.insn rsi,0x84000000,%r1,%r3,label.rsi .insn rsi,0x84000000,%r1,%r3,label.rsi
#CHECK: label.rsi: #CHECK: <label.rsi>:
label.rsi: label.rsi:
# RSE formats are short displacement versions of the RSY formats. # RSE formats are short displacement versions of the RSY formats.

View File

@ -16,11 +16,11 @@ test1:
# CHECK-LABEL: CODE: # CHECK-LABEL: CODE:
# CHECK: # 2 functions in section. # CHECK: # 2 functions in section.
# CHECK-LABEL: test0: # CHECK-LABEL: <test0>:
# CHECK-NEXT: .local f32, f64, v128, v128 # CHECK-NEXT: .local f32, f64, v128, v128
# CHECK-NEXT: 9: 20 02 local.get 2 # CHECK-NEXT: 9: 20 02 local.get 2
# CHECK-NEXT: b: 0b end # CHECK-NEXT: b: 0b end
# CHECK-LABEL: test1: # CHECK-LABEL: <test1>:
# CHECK-NEXT: .local i32, i64, exnref # CHECK-NEXT: .local i32, i64, exnref
# CHECK-NEXT: 14: 20 03 local.get 3 # CHECK-NEXT: 14: 20 03 local.get 3
# CHECK-NEXT: 16: 0b end # CHECK-NEXT: 16: 0b end

View File

@ -11,7 +11,7 @@
.align 32, 0x90 .align 32, 0x90
.type main,@function .type main,@function
main: # @main main: # @main
# CHECK-LABEL: main: # CHECK-LABEL: <main>:
# Call + pop sequence for determining the PIC base. # Call + pop sequence for determining the PIC base.
.bundle_lock align_to_end .bundle_lock align_to_end
calll .L0$pb calll .L0$pb
@ -81,5 +81,5 @@ tmp3:
.comm obj,4,4 .comm obj,4,4
.section .text.foo .section .text.foo
inc %eax inc %eax
# CHECK: tmp3: # CHECK: <tmp3>:
# CHECK-NEXT: 1: incl # CHECK-NEXT: 1: incl

View File

@ -6,7 +6,7 @@
# Will be bundle-aligning to 16 byte boundaries # Will be bundle-aligning to 16 byte boundaries
.bundle_align_mode 4 .bundle_align_mode 4
.text .text
# CHECK-LABEL: foo: # CHECK-LABEL: <foo>:
.type foo,@function .type foo,@function
foo: foo:
# Test that bundle alignment mode can be set more than once. # Test that bundle alignment mode can be set more than once.
@ -24,7 +24,7 @@ foo:
# CHECK-NEXT: 15: callq {{.*}} <bar> # CHECK-NEXT: 15: callq {{.*}} <bar>
.p2align 4 .p2align 4
# CHECK-LABEL: bar: # CHECK-LABEL: <bar>:
.type bar,@function .type bar,@function
bar: bar:
callq foo callq foo
@ -40,7 +40,7 @@ bar:
# CHECK: 36: callq {{.*}} <bar> # CHECK: 36: callq {{.*}} <bar>
# CHECK-NEXT: 3b: callq {{.*}} <bar> # CHECK-NEXT: 3b: callq {{.*}} <bar>
# CHECK-LABEL: baz: # CHECK-LABEL: <baz>:
.type baz,@function .type baz,@function
baz: baz:
callq foo callq foo

View File

@ -1,7 +1,7 @@
# Check NOP padding is disabled before instruction that has variant symbol operand. # Check NOP padding is disabled before instruction that has variant symbol operand.
# RUN: llvm-mc -filetype=obj -triple i386-unknown-unknown --x86-align-branch-boundary=32 --x86-align-branch=call %s | llvm-objdump -d - | FileCheck %s # RUN: llvm-mc -filetype=obj -triple i386-unknown-unknown --x86-align-branch-boundary=32 --x86-align-branch=call %s | llvm-objdump -d - | FileCheck %s
# CHECK: 00000000 foo: # CHECK: 00000000 <foo>:
# CHECK-COUNT-5: : 64 a3 01 00 00 00 movl %eax, %fs:1 # CHECK-COUNT-5: : 64 a3 01 00 00 00 movl %eax, %fs:1
# CHECK: 1e: e8 fc ff ff ff calll {{.*}} # CHECK: 1e: e8 fc ff ff ff calll {{.*}}
# CHECK-COUNT-4: : 64 a3 01 00 00 00 movl %eax, %fs:1 # CHECK-COUNT-4: : 64 a3 01 00 00 00 movl %eax, %fs:1

View File

@ -10,7 +10,7 @@
# RUN: llvm-mc -filetype=obj -triple x86_64-unknown-unknown %p/Inputs/align-branch-64-1.s | llvm-objdump -d - > %t4 # RUN: llvm-mc -filetype=obj -triple x86_64-unknown-unknown %p/Inputs/align-branch-64-1.s | llvm-objdump -d - > %t4
# RUN: cmp %t3 %t4 # RUN: cmp %t3 %t4
# CHECK: 0000000000000000 foo: # CHECK: 0000000000000000 <foo>:
# CHECK-COUNT-3: : 64 89 04 25 01 00 00 00 movl %eax, %fs:1 # CHECK-COUNT-3: : 64 89 04 25 01 00 00 00 movl %eax, %fs:1
# CHECK: 18: 48 39 c5 cmpq %rax, %rbp # CHECK: 18: 48 39 c5 cmpq %rax, %rbp
# CHECK-NEXT: 1b: 31 c0 xorl %eax, %eax # CHECK-NEXT: 1b: 31 c0 xorl %eax, %eax

View File

@ -1,7 +1,7 @@
# Check only fused conditional jumps and conditional jumps are aligned with option --x86-align-branch-boundary=32 --x86-align-branch=fused+jcc # Check only fused conditional jumps and conditional jumps are aligned with option --x86-align-branch-boundary=32 --x86-align-branch=fused+jcc
# RUN: llvm-mc -filetype=obj -triple x86_64-unknown-unknown --x86-align-branch-boundary=32 --x86-align-branch=fused+jcc %p/Inputs/align-branch-64-1.s | llvm-objdump -d - | FileCheck %s # RUN: llvm-mc -filetype=obj -triple x86_64-unknown-unknown --x86-align-branch-boundary=32 --x86-align-branch=fused+jcc %p/Inputs/align-branch-64-1.s | llvm-objdump -d - | FileCheck %s
# CHECK: 0000000000000000 foo: # CHECK: 0000000000000000 <foo>:
# CHECK-COUNT-3: : 64 89 04 25 01 00 00 00 movl %eax, %fs:1 # CHECK-COUNT-3: : 64 89 04 25 01 00 00 00 movl %eax, %fs:1
# CHECK-NEXT: 18: 48 39 c5 cmpq %rax, %rbp # CHECK-NEXT: 18: 48 39 c5 cmpq %rax, %rbp
# CHECK-NEXT: 1b: 31 c0 xorl %eax, %eax # CHECK-NEXT: 1b: 31 c0 xorl %eax, %eax

View File

@ -1,7 +1,7 @@
# Check only conditional jumps are aligned with option --x86-align-branch-boundary=32 --x86-align-branch=jcc # Check only conditional jumps are aligned with option --x86-align-branch-boundary=32 --x86-align-branch=jcc
# RUN: llvm-mc -filetype=obj -triple x86_64-unknown-unknown --x86-align-branch-boundary=32 --x86-align-branch=jcc %p/Inputs/align-branch-64-1.s | llvm-objdump -d - | FileCheck %s # RUN: llvm-mc -filetype=obj -triple x86_64-unknown-unknown --x86-align-branch-boundary=32 --x86-align-branch=jcc %p/Inputs/align-branch-64-1.s | llvm-objdump -d - | FileCheck %s
# CHECK: 0000000000000000 foo: # CHECK: 0000000000000000 <foo>:
# CHECK-COUNT-3: : 64 89 04 25 01 00 00 00 movl %eax, %fs:1 # CHECK-COUNT-3: : 64 89 04 25 01 00 00 00 movl %eax, %fs:1
# CHECK: 18: 48 39 c5 cmpq %rax, %rbp # CHECK: 18: 48 39 c5 cmpq %rax, %rbp
# CHECK-NEXT: 1b: 31 c0 xorl %eax, %eax # CHECK-NEXT: 1b: 31 c0 xorl %eax, %eax

View File

@ -6,7 +6,7 @@
# RUN: llvm-mc -filetype=obj -triple x86_64-unknown-unknown --x86-align-branch-boundary=32 -mcpu=x86-64 --x86-align-branch=jcc+jmp %p/Inputs/align-branch-64-1.s | llvm-objdump -d - >%t2 # RUN: llvm-mc -filetype=obj -triple x86_64-unknown-unknown --x86-align-branch-boundary=32 -mcpu=x86-64 --x86-align-branch=jcc+jmp %p/Inputs/align-branch-64-1.s | llvm-objdump -d - >%t2
# RUN: FileCheck --input-file=%t2 %s --check-prefixes=CHECK,LONG-NOP # RUN: FileCheck --input-file=%t2 %s --check-prefixes=CHECK,LONG-NOP
# CHECK: 0000000000000000 foo: # CHECK: 0000000000000000 <foo>:
# CHECK-COUNT-3: : 64 89 04 25 01 00 00 00 movl %eax, %fs:1 # CHECK-COUNT-3: : 64 89 04 25 01 00 00 00 movl %eax, %fs:1
# CHECK: 18: 48 39 c5 cmpq %rax, %rbp # CHECK: 18: 48 39 c5 cmpq %rax, %rbp
# CHECK-NEXT: 1b: 31 c0 xorl %eax, %eax # CHECK-NEXT: 1b: 31 c0 xorl %eax, %eax

View File

@ -1,7 +1,7 @@
# Check only indirect jumps are aligned with option --x86-align-branch-boundary=32 --x86-align-branch=indirect # Check only indirect jumps are aligned with option --x86-align-branch-boundary=32 --x86-align-branch=indirect
# RUN: llvm-mc -filetype=obj -triple x86_64-unknown-unknown --x86-align-branch-boundary=32 --x86-align-branch=indirect %p/Inputs/align-branch-64-2.s | llvm-objdump -d - | FileCheck %s # RUN: llvm-mc -filetype=obj -triple x86_64-unknown-unknown --x86-align-branch-boundary=32 --x86-align-branch=indirect %p/Inputs/align-branch-64-2.s | llvm-objdump -d - | FileCheck %s
# CHECK: 0000000000000000 foo: # CHECK: 0000000000000000 <foo>:
# CHECK-COUNT-3: : 64 89 04 25 01 00 00 00 movl %eax, %fs:1 # CHECK-COUNT-3: : 64 89 04 25 01 00 00 00 movl %eax, %fs:1
# CHECK-COUNT-2: : 89 75 f4 movl %esi, -12(%rbp) # CHECK-COUNT-2: : 89 75 f4 movl %esi, -12(%rbp)
# CHECK-COUNT-2: : 90 nop # CHECK-COUNT-2: : 90 nop

View File

@ -1,7 +1,7 @@
# Check only calls are aligned with option --x86-align-branch-boundary=32 --x86-align-branch=call # Check only calls are aligned with option --x86-align-branch-boundary=32 --x86-align-branch=call
# RUN: llvm-mc -filetype=obj -triple x86_64-unknown-unknown --x86-align-branch-boundary=32 --x86-align-branch=call %p/Inputs/align-branch-64-2.s | llvm-objdump -d - | FileCheck %s # RUN: llvm-mc -filetype=obj -triple x86_64-unknown-unknown --x86-align-branch-boundary=32 --x86-align-branch=call %p/Inputs/align-branch-64-2.s | llvm-objdump -d - | FileCheck %s
# CHECK: 0000000000000000 foo: # CHECK: 0000000000000000 <foo>:
# CHECK-COUNT-3: : 64 89 04 25 01 00 00 00 movl %eax, %fs:1 # CHECK-COUNT-3: : 64 89 04 25 01 00 00 00 movl %eax, %fs:1
# CHECK-COUNT-2: : 89 75 f4 movl %esi, -12(%rbp) # CHECK-COUNT-2: : 89 75 f4 movl %esi, -12(%rbp)
# CHECK: 1e: ff e0 jmpq *%rax # CHECK: 1e: ff e0 jmpq *%rax

View File

@ -1,7 +1,7 @@
# Check only indirect jumps and calls are aligned with option --x86-align-branch-boundary=32 --x86-align-branch=indirect+call # Check only indirect jumps and calls are aligned with option --x86-align-branch-boundary=32 --x86-align-branch=indirect+call
# RUN: llvm-mc -filetype=obj -triple x86_64-unknown-unknown --x86-align-branch-boundary=32 --x86-align-branch=indirect+call %p/Inputs/align-branch-64-2.s | llvm-objdump -d - | FileCheck %s # RUN: llvm-mc -filetype=obj -triple x86_64-unknown-unknown --x86-align-branch-boundary=32 --x86-align-branch=indirect+call %p/Inputs/align-branch-64-2.s | llvm-objdump -d - | FileCheck %s
# CHECK: 0000000000000000 foo: # CHECK: 0000000000000000 <foo>:
# CHECK-COUNT-3: : 64 89 04 25 01 00 00 00 movl %eax, %fs:1 # CHECK-COUNT-3: : 64 89 04 25 01 00 00 00 movl %eax, %fs:1
# CHECK-COUNT-2: : 89 75 f4 movl %esi, -12(%rbp) # CHECK-COUNT-2: : 89 75 f4 movl %esi, -12(%rbp)
# CHECK-COUNT-2: : 90 nop # CHECK-COUNT-2: : 90 nop

View File

@ -1,7 +1,7 @@
# Check NOP padding is disabled before instruction that has variant symbol operand. # Check NOP padding is disabled before instruction that has variant symbol operand.
# RUN: llvm-mc -filetype=obj -triple x86_64-unknown-unknown --x86-align-branch-boundary=32 --x86-align-branch=jmp+call %s | llvm-objdump -d - | FileCheck %s # RUN: llvm-mc -filetype=obj -triple x86_64-unknown-unknown --x86-align-branch-boundary=32 --x86-align-branch=jmp+call %s | llvm-objdump -d - | FileCheck %s
# CHECK: 0000000000000000 foo: # CHECK: 0000000000000000 <foo>:
# CHECK-COUNT-3: : 64 89 04 25 01 00 00 00 movl %eax, %fs:1 # CHECK-COUNT-3: : 64 89 04 25 01 00 00 00 movl %eax, %fs:1
# CHECK-COUNT-2: : 48 89 e5 movq %rsp, %rbp # CHECK-COUNT-2: : 48 89 e5 movq %rsp, %rbp
# CHECK: 1e: e8 00 00 00 00 callq {{.*}} # CHECK: 1e: e8 00 00 00 00 callq {{.*}}

View File

@ -1,7 +1,7 @@
# Check only rets are aligned with option --x86-align-branch-boundary=32 --x86-align-branch=ret # Check only rets are aligned with option --x86-align-branch-boundary=32 --x86-align-branch=ret
# RUN: llvm-mc -filetype=obj -triple x86_64-unknown-unknown --x86-align-branch-boundary=32 --x86-align-branch=ret %s | llvm-objdump -d - | FileCheck %s # RUN: llvm-mc -filetype=obj -triple x86_64-unknown-unknown --x86-align-branch-boundary=32 --x86-align-branch=ret %s | llvm-objdump -d - | FileCheck %s
# CHECK: 0000000000000000 foo: # CHECK: 0000000000000000 <foo>:
# CHECK-COUNT-3: : 64 89 04 25 01 00 00 00 movl %eax, %fs:1 # CHECK-COUNT-3: : 64 89 04 25 01 00 00 00 movl %eax, %fs:1
# CHECK-COUNT-2: : 48 89 e5 movq %rsp, %rbp # CHECK-COUNT-2: : 48 89 e5 movq %rsp, %rbp
# CHECK: 1e: 5a popq %rdx # CHECK: 1e: 5a popq %rdx

View File

@ -4,7 +4,7 @@
# RUN: cmp %t1 %t2 # RUN: cmp %t1 %t2
# RUN: FileCheck --input-file=%t1 %s # RUN: FileCheck --input-file=%t1 %s
# CHECK: 0000000000000000 foo: # CHECK: 0000000000000000 <foo>:
# CHECK-COUNT-3: : 64 89 04 25 01 00 00 00 movl %eax, %fs:1 # CHECK-COUNT-3: : 64 89 04 25 01 00 00 00 movl %eax, %fs:1
# CHECK: 18: c1 e9 02 shrl $2, %ecx # CHECK: 18: c1 e9 02 shrl $2, %ecx
# CHECK-NEXT: 1b: 89 d1 movl %edx, %ecx # CHECK-NEXT: 1b: 89 d1 movl %edx, %ecx

View File

@ -2,7 +2,7 @@
# RUN: llvm-mc -filetype=obj -triple x86_64-unknown-unknown --x86-align-branch-boundary=32 --x86-align-branch=fused+jcc+jmp+indirect+call+ret --mc-relax-all %s | llvm-objdump -d - > %t1 # RUN: llvm-mc -filetype=obj -triple x86_64-unknown-unknown --x86-align-branch-boundary=32 --x86-align-branch=fused+jcc+jmp+indirect+call+ret --mc-relax-all %s | llvm-objdump -d - > %t1
# RUN: FileCheck --input-file=%t1 %s # RUN: FileCheck --input-file=%t1 %s
# CHECK: 0000000000000000 foo: # CHECK: 0000000000000000 <foo>:
# CHECK-NEXT: 0: 64 89 04 25 01 00 00 00 movl %eax, %fs:1 # CHECK-NEXT: 0: 64 89 04 25 01 00 00 00 movl %eax, %fs:1
# CHECK-NEXT: 8: 64 89 04 25 01 00 00 00 movl %eax, %fs:1 # CHECK-NEXT: 8: 64 89 04 25 01 00 00 00 movl %eax, %fs:1
# CHECK-NEXT: 10: 64 89 04 25 01 00 00 00 movl %eax, %fs:1 # CHECK-NEXT: 10: 64 89 04 25 01 00 00 00 movl %eax, %fs:1

View File

@ -2,7 +2,7 @@
# RUN: llvm-mc -filetype=obj -triple x86_64-unknown-unknown --x86-align-branch-boundary=16 --x86-align-branch=fused+jcc --mc-relax-all %s | llvm-objdump -d - > %t1 # RUN: llvm-mc -filetype=obj -triple x86_64-unknown-unknown --x86-align-branch-boundary=16 --x86-align-branch=fused+jcc --mc-relax-all %s | llvm-objdump -d - > %t1
# RUN: FileCheck --input-file=%t1 %s # RUN: FileCheck --input-file=%t1 %s
# CHECK: 0000000000000000 foo: # CHECK: 0000000000000000 <foo>:
# CHECK-NEXT: 0: 55 pushq %rbp # CHECK-NEXT: 0: 55 pushq %rbp
# CHECK-NEXT: 1: 48 f7 c2 02 00 00 00 testq $2, %rdx # CHECK-NEXT: 1: 48 f7 c2 02 00 00 00 testq $2, %rdx
# CHECK-NEXT: 8: 0f 85 f2 ff ff ff jne {{.*}} # CHECK-NEXT: 8: 0f 85 f2 ff ff ff jne {{.*}}

View File

@ -11,8 +11,8 @@
# In the first test, we have a label which is expected to be bound to the # In the first test, we have a label which is expected to be bound to the
# start of the call. For instance, we want to associate a fault on the call # start of the call. For instance, we want to associate a fault on the call
# target with some bit of higher level sementic. # target with some bit of higher level sementic.
# CHECK: labeled_call_test1: # CHECK-LABEL: <labeled_call_test1>:
# CHECK: 1f label_before # CHECK: 1f <label_before>:
# CHECK: 1f: nop # CHECK: 1f: nop
# CHECK: 20: callq # CHECK: 20: callq
.globl labeled_call_test1 .globl labeled_call_test1
@ -27,10 +27,10 @@ label_before:
# In the second test, we have a label which is expected to be bound to the # In the second test, we have a label which is expected to be bound to the
# end of the call. For instance, we want the to associate some data with # end of the call. For instance, we want the to associate some data with
# the return address of the call. # the return address of the call.
# CHECK: labeled_call_test2: # CHECK-LABEL: <labeled_call_test2>:
# CHECK: 5a: callq # CHECK: 5a: callq
# CHECK: 5f: nop # CHECK: 5f: nop
# CHECK: 60 label_after # CHECK: 60 <label_after>:
# CHECK: 60: jmp # CHECK: 60: jmp
.globl labeled_call_test2 .globl labeled_call_test2
.p2align 5 .p2align 5
@ -45,8 +45,8 @@ label_after:
# Our third test is like the first w/a labeled fault, but specifically to # Our third test is like the first w/a labeled fault, but specifically to
# a fused memory comparison. This is the form produced by implicit null # a fused memory comparison. This is the form produced by implicit null
# checks for instance. # checks for instance.
# CHECK: implicit_null_check: # CHECK-LABEL: <implicit_null_check>:
# CHECK: 9f fault_addr # CHECK: 9f <fault_addr>:
# CHECK: 9f: nop # CHECK: 9f: nop
# CHECK: a0: cmpq # CHECK: a0: cmpq
.globl implicit_null_check .globl implicit_null_check

View File

@ -14,7 +14,7 @@
# Next couple tests are checking the edge cases on the alignment computation # Next couple tests are checking the edge cases on the alignment computation
.text .text
# CHECK: test1: # CHECK: <test1>:
# CHECK: 20: callq # CHECK: 20: callq
.globl test1 .globl test1
.p2align 5 .p2align 5
@ -24,7 +24,7 @@ test1:
.endr .endr
callq bar callq bar
# CHECK: test2: # CHECK: <test2>:
# CHECK: 60: callq # CHECK: 60: callq
.globl test2 .globl test2
.p2align 5 .p2align 5
@ -34,7 +34,7 @@ test2:
.endr .endr
callq bar callq bar
# CHECK: test3: # CHECK: <test3>:
# CHECK: a0: callq # CHECK: a0: callq
.globl test3 .globl test3
.p2align 5 .p2align 5
@ -46,7 +46,7 @@ test3:
# next couple check instruction type coverage # next couple check instruction type coverage
# CHECK: test_jmp: # CHECK: <test_jmp>:
# CHECK: e0: jmp # CHECK: e0: jmp
.globl test_jmp .globl test_jmp
.p2align 5 .p2align 5
@ -56,7 +56,7 @@ test_jmp:
.endr .endr
jmp bar jmp bar
# CHECK: test_ret: # CHECK: <test_ret>:
# CHECK: 120: retq # CHECK: 120: retq
.globl test_ret .globl test_ret
.p2align 5 .p2align 5
@ -68,7 +68,7 @@ test_ret:
# check a case with a relaxable instruction # check a case with a relaxable instruction
# CHECK: test_jmp_far: # CHECK: <test_jmp_far>:
# CHECK: 160: jmp # CHECK: 160: jmp
.globl test_jmp_far .globl test_jmp_far
.p2align 5 .p2align 5
@ -78,7 +78,7 @@ test_jmp_far:
.endr .endr
jmp baz jmp baz
# CHECK: test_jcc: # CHECK: <test_jcc>:
# CHECK: 1a0: jne # CHECK: 1a0: jne
.globl test_jcc .globl test_jcc
.p2align 5 .p2align 5
@ -88,7 +88,7 @@ test_jcc:
.endr .endr
jne bar jne bar
# CHECK: test_indirect: # CHECK: <test_indirect>:
# CHECK: 1e0: jmp # CHECK: 1e0: jmp
.globl test_indirect .globl test_indirect
.p2align 5 .p2align 5
@ -103,7 +103,7 @@ test_indirect:
bar: bar:
retq retq
# CHECK: test_pad_via_relax: # CHECK: <test_pad_via_relax>:
# CHECK: 200: testq # CHECK: 200: testq
# CHECK: 203: jne # CHECK: 203: jne
# CHECK: 209: int3 # CHECK: 209: int3
@ -123,7 +123,7 @@ test_pad_via_relax:
# This case looks really tempting to pad, but doing so for the call causes # This case looks really tempting to pad, but doing so for the call causes
# the jmp to be misaligned. # the jmp to be misaligned.
# CHECK: test_pad_via_relax_neg1: # CHECK: <test_pad_via_relax_neg1>:
# CHECK: 240: int3 # CHECK: 240: int3
# CHECK: 25a: testq # CHECK: 25a: testq
# CHECK: 25d: jne # CHECK: 25d: jne
@ -140,7 +140,7 @@ test_pad_via_relax_neg1:
callq bar callq bar
# Same as previous, but without fusion # Same as previous, but without fusion
# CHECK: test_pad_via_relax_neg2: # CHECK: <test_pad_via_relax_neg2>:
# CHECK: 280: int3 # CHECK: 280: int3
# CHECK: 29d: jmp # CHECK: 29d: jmp
# CHECK: 29f: nop # CHECK: 29f: nop

View File

@ -30,7 +30,7 @@ foo:
# Check that we're not shifting aroudn the offsets of labels - doing # Check that we're not shifting aroudn the offsets of labels - doing
# that would require a further round of relaxation # that would require a further round of relaxation
# CHECK: bar: # CHECK: <bar>:
# CHECK: 22: eb fe jmp -2 <bar> # CHECK: 22: eb fe jmp -2 <bar>
# CHECK: 24: 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:(%rax,%rax) # CHECK: 24: 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:(%rax,%rax)
# CHECK: 2e: 66 90 nop # CHECK: 2e: 66 90 nop
@ -45,18 +45,18 @@ nobypass:
# Canonical toy loop to show benefit - we can align the loop header with # Canonical toy loop to show benefit - we can align the loop header with
# fewer nops by relaxing the branch, even though we don't need to # fewer nops by relaxing the branch, even though we don't need to
# CHECK: loop_preheader: # CHECK: <loop_preheader>:
# CHECK: 45: 48 85 c0 testq %rax, %rax # CHECK: 45: 48 85 c0 testq %rax, %rax
# CHECK: 48: 0f 8e 22 00 00 00 jle 34 <loop_exit> # CHECK: 48: 0f 8e 22 00 00 00 jle 34 <loop_exit>
# CHECK: 4e: 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:(%rax,%rax) # CHECK: 4e: 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:(%rax,%rax)
# CHECK: 58: 0f 1f 84 00 00 00 00 00 nopl (%rax,%rax) # CHECK: 58: 0f 1f 84 00 00 00 00 00 nopl (%rax,%rax)
# CHECK: loop_header: # CHECK: <loop_header>:
# CHECK: 60: 48 83 e8 01 subq $1, %rax # CHECK: 60: 48 83 e8 01 subq $1, %rax
# CHECK: 64: 48 85 c0 testq %rax, %rax # CHECK: 64: 48 85 c0 testq %rax, %rax
# CHECK: 67: 7e 07 jle 7 <loop_exit> # CHECK: 67: 7e 07 jle 7 <loop_exit>
# CHECK: 69: e9 f2 ff ff ff jmp -14 <loop_header> # CHECK: 69: e9 f2 ff ff ff jmp -14 <loop_header>
# CHECK: 6e: 66 90 nop # CHECK: 6e: 66 90 nop
# CHECK: loop_exit: # CHECK: <loop_exit>:
# CHECK: 70: c3 retq # CHECK: 70: c3 retq
.p2align 5 .p2align 5
.skip 5 .skip 5

View File

@ -14,7 +14,7 @@ foo:
.code64 .code64
retq retq
# CHECK: foo: # CHECK: <foo>:
# CHECK-NEXT: 67 8b 00 movl (%eax), %eax # CHECK-NEXT: 67 8b 00 movl (%eax), %eax
# CHECK-NEXT: 8b 00 movl (%rax), %eax # CHECK-NEXT: 8b 00 movl (%rax), %eax
# CHECK-NEXT: 67 66 8b 00 movw (%eax), %ax # CHECK-NEXT: 67 66 8b 00 movw (%eax), %ax

View File

@ -5,7 +5,7 @@
// This test checks that we follow these rules and can force // This test checks that we follow these rules and can force
// dissasembly of zero blocks with the -z and --disassemble-zeroes options. // dissasembly of zero blocks with the -z and --disassemble-zeroes options.
// NODISASM: 0000000000000000 main: // NODISASM: 0000000000000000 <main>:
// NODISASM-NEXT: 0: 00 00 addb %al, (%rax) // NODISASM-NEXT: 0: 00 00 addb %al, (%rax)
// NODISASM-NEXT: 2: 00 00 addb %al, (%rax) // NODISASM-NEXT: 2: 00 00 addb %al, (%rax)
// NODISASM-NEXT: 4: 00 00 addb %al, (%rax) // NODISASM-NEXT: 4: 00 00 addb %al, (%rax)
@ -13,16 +13,16 @@
// NODISASM-NEXT: ... // NODISASM-NEXT: ...
// NODISASM-NEXT: 20: 90 nop // NODISASM-NEXT: 20: 90 nop
// NODISASM-NEXT: ... // NODISASM-NEXT: ...
// NODISASM: 0000000000000031 foo: // NODISASM: 0000000000000031 <foo>:
// NODISASM-NEXT: 31: 00 00 addb %al, (%rax) // NODISASM-NEXT: 31: 00 00 addb %al, (%rax)
// NODISASM-NEXT: 33: 00 00 addb %al, (%rax) // NODISASM-NEXT: 33: 00 00 addb %al, (%rax)
// NODISASM: 0000000000000035 bar: // NODISASM: 0000000000000035 <bar>:
// NODISASM-NEXT: ... // NODISASM-NEXT: ...
// Check that with -z we disassemble blocks of zeroes. // Check that with -z we disassemble blocks of zeroes.
// RUN: llvm-objdump -d -z %t | FileCheck %s --check-prefix=DISASM // RUN: llvm-objdump -d -z %t | FileCheck %s --check-prefix=DISASM
// DISASM: 0000000000000000 main: // DISASM: 0000000000000000 <main>:
// DISASM-NEXT: 0: 00 00 addb %al, (%rax) // DISASM-NEXT: 0: 00 00 addb %al, (%rax)
// DISASM-NEXT: 2: 00 00 addb %al, (%rax) // DISASM-NEXT: 2: 00 00 addb %al, (%rax)
// DISASM-NEXT: 4: 00 00 addb %al, (%rax) // DISASM-NEXT: 4: 00 00 addb %al, (%rax)
@ -46,10 +46,10 @@
// DISASM-NEXT: 2b: 00 00 addb %al, (%rax) // DISASM-NEXT: 2b: 00 00 addb %al, (%rax)
// DISASM-NEXT: 2d: 00 00 addb %al, (%rax) // DISASM-NEXT: 2d: 00 00 addb %al, (%rax)
// DISASM-NEXT: 2f: 00 00 addb %al, (%rax) // DISASM-NEXT: 2f: 00 00 addb %al, (%rax)
// DISASM: 0000000000000031 foo: // DISASM: 0000000000000031 <foo>:
// DISASM-NEXT: 31: 00 00 addb %al, (%rax) // DISASM-NEXT: 31: 00 00 addb %al, (%rax)
// DISASM-NEXT: 33: 00 00 addb %al, (%rax) // DISASM-NEXT: 33: 00 00 addb %al, (%rax)
// DISASM: 0000000000000035 bar: // DISASM: 0000000000000035 <bar>:
// DISASM-NEXT: 35: 00 00 addb %al, (%rax) // DISASM-NEXT: 35: 00 00 addb %al, (%rax)
// DISASM-NEXT: 37: 00 00 addb %al, (%rax) // DISASM-NEXT: 37: 00 00 addb %al, (%rax)
// DISASM-NEXT: 39: 00 00 addb %al, (%rax) // DISASM-NEXT: 39: 00 00 addb %al, (%rax)

Some files were not shown because too many files have changed in this diff Show More