[NFC][RemoveDIs] Prefer iterators over inst-pointers in InstCombine
[llvm-project.git] / llvm / test / CodeGen / AArch64 / fpenv.ll
blob14bf7888918e5be33241a4007f2d704643ab9450
1 ; RUN: llc -mtriple=aarch64-none-linux-gnu %s -o - | FileCheck %s
3 define void @func_02(i32 %rm) {
4   call void @llvm.set.rounding(i32 %rm)
5   ret void
8 ; CHECK-LABEL: func_02:
9 ; CHECK:       sub   w9, w0, #1
10 ; CHECK:       mrs   x8, FPCR
11 ; CHECK:       and   w9, w9, #0x3
12 ; CHECK:       and   x8, x8, #0xffffffffff3fffff
13 ; CHECK:       lsl   w9, w9, #22
14 ; CHECK:       orr   x8, x8, x9
15 ; CHECK:       msr   FPCR, x8
16 ; CHECK:       ret
19 define void @func_03() {
20   call void @llvm.set.rounding(i32 0)
21   ret void
24 ; CHECK-LABEL: func_03
25 ; CHECK:       mrs   x8, FPCR
26 ; CHECK:       orr   x8, x8, #0xc00000
27 ; CHECK:       msr   FPCR, x8
28 ; CHECK:       ret
31 define void @func_04() {
32   call void @llvm.set.rounding(i32 1)
33   ret void
36 ; CHECK-LABEL: func_04
37 ; CHECK:       mrs   x8, FPCR
38 ; CHECK:       and   x8, x8, #0xffffffffff3fffff
39 ; CHECK:       msr   FPCR, x8
40 ; CHECK:       ret
43 define void @func_05() {
44   call void @llvm.set.rounding(i32 2)
45   ret void
49 ; CHECK-LABEL: func_05
50 ; CHECK:       mrs   x8, FPCR
51 ; CHECK:       and   x8, x8, #0xffffffffff3fffff
52 ; CHECK:       orr   x8, x8, #0x400000
53 ; CHECK:       msr   FPCR, x8
54 ; CHECK:       ret
57 define void @func_06() {
58   call void @llvm.set.rounding(i32 3)
59   ret void
62 ; CHECK-LABEL: func_06
63 ; CHECK:       mrs   x8, FPCR
64 ; CHECK:       and   x8, x8, #0xffffffffff3fffff
65 ; CHECK:       orr   x8, x8, #0x800000
66 ; CHECK:       msr   FPCR, x8
67 ; CHECK:       ret
70 declare void @llvm.set.rounding(i32)