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)
8 ; CHECK-LABEL: func_02:
9 ; CHECK: sub w9, w0, #1
11 ; CHECK: and w9, w9, #0x3
12 ; CHECK: and x8, x8, #0xffffffffff3fffff
13 ; CHECK: lsl w9, w9, #22
14 ; CHECK: orr x8, x8, x9
19 define void @func_03() {
20 call void @llvm.set.rounding(i32 0)
24 ; CHECK-LABEL: func_03
26 ; CHECK: orr x8, x8, #0xc00000
31 define void @func_04() {
32 call void @llvm.set.rounding(i32 1)
36 ; CHECK-LABEL: func_04
38 ; CHECK: and x8, x8, #0xffffffffff3fffff
43 define void @func_05() {
44 call void @llvm.set.rounding(i32 2)
49 ; CHECK-LABEL: func_05
51 ; CHECK: and x8, x8, #0xffffffffff3fffff
52 ; CHECK: orr x8, x8, #0x400000
57 define void @func_06() {
58 call void @llvm.set.rounding(i32 3)
62 ; CHECK-LABEL: func_06
64 ; CHECK: and x8, x8, #0xffffffffff3fffff
65 ; CHECK: orr x8, x8, #0x800000
70 declare void @llvm.set.rounding(i32)