1 ; RUN: llc -verify-machineinstrs < %s -march=aarch64 | FileCheck %s
8 %val32 = load i32* @var32
9 %val64 = load i64* @var64
11 %val32_lit32 = and i32 %val32, 123456785
12 store volatile i32 %val32_lit32, i32* @var32
13 ; CHECK: ldr {{w[0-9]+}}, .LCPI0
15 %val64_lit32 = and i64 %val64, 305402420
16 store volatile i64 %val64_lit32, i64* @var64
17 ; CHECK: ldr {{w[0-9]+}}, .LCPI0
19 %val64_lit32signed = and i64 %val64, -12345678
20 store volatile i64 %val64_lit32signed, i64* @var64
21 ; CHECK: ldrsw {{x[0-9]+}}, .LCPI0
23 %val64_lit64 = and i64 %val64, 1234567898765432
24 store volatile i64 %val64_lit64, i64* @var64
25 ; CHECK: ldr {{x[0-9]+}}, .LCPI0
30 @varfloat = global float 0.0
31 @vardouble = global double 0.0
33 define void @floating_lits() {
34 ; CHECK: floating_lits:
36 %floatval = load float* @varfloat
37 %newfloat = fadd float %floatval, 128.0
38 ; CHECK: ldr {{s[0-9]+}}, .LCPI1
40 store float %newfloat, float* @varfloat
42 %doubleval = load double* @vardouble
43 %newdouble = fadd double %doubleval, 129.0
44 ; CHECK: ldr {{d[0-9]+}}, .LCPI1
46 store double %newdouble, double* @vardouble