1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 4
2 ; RUN: llc -mtriple=aarch64 %s -o - | FileCheck %s
4 define i64 @test0x1234567812345678() {
5 ; CHECK-LABEL: test0x1234567812345678:
7 ; CHECK-NEXT: mov x0, #22136 // =0x5678
8 ; CHECK-NEXT: movk x0, #4660, lsl #16
9 ; CHECK-NEXT: orr x0, x0, x0, lsl #32
11 ret i64 u0x1234567812345678
14 define i64 @test0xff3456ffff3456ff() {
15 ; CHECK-LABEL: test0xff3456ffff3456ff:
17 ; CHECK-NEXT: mov x0, #22271 // =0x56ff
18 ; CHECK-NEXT: movk x0, #65332, lsl #16
19 ; CHECK-NEXT: orr x0, x0, x0, lsl #32
21 ret i64 u0xff3456ffff3456ff
24 define i64 @test0x00345600345600() {
25 ; CHECK-LABEL: test0x00345600345600:
27 ; CHECK-NEXT: mov x0, #22016 // =0x5600
28 ; CHECK-NEXT: movk x0, #52, lsl #16
29 ; CHECK-NEXT: movk x0, #13398, lsl #32
31 ret i64 u0x00345600345600
34 define i64 @test0x5555555555555555() {
35 ; CHECK-LABEL: test0x5555555555555555:
37 ; CHECK-NEXT: mov x0, #6148914691236517205 // =0x5555555555555555
39 ret i64 u0x5555555555555555
42 define i64 @test0x5055555550555555() {
43 ; CHECK-LABEL: test0x5055555550555555:
45 ; CHECK-NEXT: mov x0, #6148914691236517205 // =0x5555555555555555
46 ; CHECK-NEXT: and x0, x0, #0xf0fffffff0ffffff
48 ret i64 u0x5055555550555555
51 define i64 @test0x0000555555555555() {
52 ; CHECK-LABEL: test0x0000555555555555:
54 ; CHECK-NEXT: mov x0, #6148914691236517205 // =0x5555555555555555
55 ; CHECK-NEXT: movk x0, #0, lsl #48
57 ret i64 u0x0000555555555555
60 define i64 @test0x0000555500005555() {
61 ; CHECK-LABEL: test0x0000555500005555:
63 ; CHECK-NEXT: mov x0, #21845 // =0x5555
64 ; CHECK-NEXT: movk x0, #21845, lsl #32
66 ret i64 u0x0000555500005555
69 define i64 @testu0xffff5555ffff5555() {
70 ; CHECK-LABEL: testu0xffff5555ffff5555:
72 ; CHECK-NEXT: mov x0, #-43691 // =0xffffffffffff5555
73 ; CHECK-NEXT: movk x0, #21845, lsl #32
75 ret i64 u0xffff5555ffff5555
78 define i64 @testuu0xfffff555f555f555() {
79 ; CHECK-LABEL: testuu0xfffff555f555f555:
81 ; CHECK-NEXT: mov x0, #-2731 // =0xfffffffffffff555
82 ; CHECK-NEXT: movk x0, #62805, lsl #16
83 ; CHECK-NEXT: movk x0, #62805, lsl #32
85 ret i64 u0xfffff555f555f555
88 define i64 @testuu0xf555f555f555f555() {
89 ; CHECK-LABEL: testuu0xf555f555f555f555:
91 ; CHECK-NEXT: mov x0, #6148914691236517205 // =0x5555555555555555
92 ; CHECK-NEXT: orr x0, x0, #0xe001e001e001e001
94 ret i64 u0xf555f555f555f555