[win/asan] GetInstructionSize: Fix `83 E4 XX` to return 3. (#119644)
[llvm-project.git] / llvm / test / CodeGen / ARM / thumb-alignment.ll
blob6bd110ac7c648937223a8e044aff9d356aed6fef
1 ; RUN: llc -relocation-model=pic -mtriple=thumbv7-unknown-linux -o - %s | FileCheck %s
3 @x = external global i32
5 ; CHECK: .globl foo
6 ; CHECK-NEXT: .p2align  2
7 define ptr @foo() {
8   ret ptr @x
11 ; CHECK: .globl bar
12 ; CHECK-NEXT: .p2align  1
13 define ptr @bar() {
14   ret ptr zeroinitializer
17 @a = external global i32
18 @b = external global i32
19 @c = external global i32
20 @d = external global i32
22 ; Create a Thumb-2 jump table, which should force alignment to 4 bytes.
24 ; CHECK: .globl baz
25 ; CHECK-NEXT: .p2align  2
26 ; CHECK: tbb
27 define i32 @baz() {
28   %1 = load i32, ptr @c, align 4
29   switch i32 %1, label %7 [
30     i32 1, label %2
31     i32 4, label %5
32     i32 9, label %5
33     i32 3, label %8
34   ]
36 ; <label>:2
37   %3 = load i32, ptr @a, align 4
38   %4 = tail call i32 @fn2(ptr @baz, i32 0, i32 %3) #2
39   br label %8
41 ; <label>:5
42   %6 = load i32, ptr @d, align 4
43   store i32 %6, ptr @b, align 4
44   br label %8
46 ; <label>:7
47   br label %8
49 ; <label>:8
50   %e.0 = phi i32 [ 1, %7 ], [ 1, %2 ], [ 0, %0 ], [ 0, %5 ]
51   ret i32 %e.0
54 declare i32 @fn2(...)