1*9880d681SAndroid Build Coastguard Worker; RUN: llc -verify-machineinstrs -o - %s -mtriple=arm64-apple-ios7.0 | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Worker@var32 = global i32 0 4*9880d681SAndroid Build Coastguard Worker@var64 = global i64 0 5*9880d681SAndroid Build Coastguard Worker 6*9880d681SAndroid Build Coastguard Workerdefine void @test_and(i32 %in32, i64 %in64) { 7*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_and: 8*9880d681SAndroid Build Coastguard Worker 9*9880d681SAndroid Build Coastguard Worker %val0 = and i32 %in32, 2863311530 10*9880d681SAndroid Build Coastguard Worker store volatile i32 %val0, i32* @var32 11*9880d681SAndroid Build Coastguard Worker; CHECK: and {{w[0-9]+}}, {{w[0-9]+}}, #0xaaaaaaaa 12*9880d681SAndroid Build Coastguard Worker 13*9880d681SAndroid Build Coastguard Worker %val1 = and i32 %in32, 4293984240 14*9880d681SAndroid Build Coastguard Worker store volatile i32 %val1, i32* @var32 15*9880d681SAndroid Build Coastguard Worker; CHECK: and {{w[0-9]+}}, {{w[0-9]+}}, #0xfff0fff0 16*9880d681SAndroid Build Coastguard Worker 17*9880d681SAndroid Build Coastguard Worker %val2 = and i64 %in64, 9331882296111890817 18*9880d681SAndroid Build Coastguard Worker store volatile i64 %val2, i64* @var64 19*9880d681SAndroid Build Coastguard Worker; CHECK: and {{x[0-9]+}}, {{x[0-9]+}}, #0x8181818181818181 20*9880d681SAndroid Build Coastguard Worker 21*9880d681SAndroid Build Coastguard Worker %val3 = and i64 %in64, 18429855317404942275 22*9880d681SAndroid Build Coastguard Worker store volatile i64 %val3, i64* @var64 23*9880d681SAndroid Build Coastguard Worker; CHECK: and {{x[0-9]+}}, {{x[0-9]+}}, #0xffc3ffc3ffc3ffc3 24*9880d681SAndroid Build Coastguard Worker 25*9880d681SAndroid Build Coastguard Worker ret void 26*9880d681SAndroid Build Coastguard Worker} 27*9880d681SAndroid Build Coastguard Worker 28*9880d681SAndroid Build Coastguard Workerdefine void @test_orr(i32 %in32, i64 %in64) { 29*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_orr: 30*9880d681SAndroid Build Coastguard Worker 31*9880d681SAndroid Build Coastguard Worker %val0 = or i32 %in32, 2863311530 32*9880d681SAndroid Build Coastguard Worker store volatile i32 %val0, i32* @var32 33*9880d681SAndroid Build Coastguard Worker; CHECK: orr {{w[0-9]+}}, {{w[0-9]+}}, #0xaaaaaaaa 34*9880d681SAndroid Build Coastguard Worker 35*9880d681SAndroid Build Coastguard Worker %val1 = or i32 %in32, 4293984240 36*9880d681SAndroid Build Coastguard Worker store volatile i32 %val1, i32* @var32 37*9880d681SAndroid Build Coastguard Worker; CHECK: orr {{w[0-9]+}}, {{w[0-9]+}}, #0xfff0fff0 38*9880d681SAndroid Build Coastguard Worker 39*9880d681SAndroid Build Coastguard Worker %val2 = or i64 %in64, 9331882296111890817 40*9880d681SAndroid Build Coastguard Worker store volatile i64 %val2, i64* @var64 41*9880d681SAndroid Build Coastguard Worker; CHECK: orr {{x[0-9]+}}, {{x[0-9]+}}, #0x8181818181818181 42*9880d681SAndroid Build Coastguard Worker 43*9880d681SAndroid Build Coastguard Worker %val3 = or i64 %in64, 18429855317404942275 44*9880d681SAndroid Build Coastguard Worker store volatile i64 %val3, i64* @var64 45*9880d681SAndroid Build Coastguard Worker; CHECK: orr {{x[0-9]+}}, {{x[0-9]+}}, #0xffc3ffc3ffc3ffc3 46*9880d681SAndroid Build Coastguard Worker 47*9880d681SAndroid Build Coastguard Worker ret void 48*9880d681SAndroid Build Coastguard Worker} 49*9880d681SAndroid Build Coastguard Worker 50*9880d681SAndroid Build Coastguard Workerdefine void @test_eor(i32 %in32, i64 %in64) { 51*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_eor: 52*9880d681SAndroid Build Coastguard Worker 53*9880d681SAndroid Build Coastguard Worker %val0 = xor i32 %in32, 2863311530 54*9880d681SAndroid Build Coastguard Worker store volatile i32 %val0, i32* @var32 55*9880d681SAndroid Build Coastguard Worker; CHECK: eor {{w[0-9]+}}, {{w[0-9]+}}, #0xaaaaaaaa 56*9880d681SAndroid Build Coastguard Worker 57*9880d681SAndroid Build Coastguard Worker %val1 = xor i32 %in32, 4293984240 58*9880d681SAndroid Build Coastguard Worker store volatile i32 %val1, i32* @var32 59*9880d681SAndroid Build Coastguard Worker; CHECK: eor {{w[0-9]+}}, {{w[0-9]+}}, #0xfff0fff0 60*9880d681SAndroid Build Coastguard Worker 61*9880d681SAndroid Build Coastguard Worker %val2 = xor i64 %in64, 9331882296111890817 62*9880d681SAndroid Build Coastguard Worker store volatile i64 %val2, i64* @var64 63*9880d681SAndroid Build Coastguard Worker; CHECK: eor {{x[0-9]+}}, {{x[0-9]+}}, #0x8181818181818181 64*9880d681SAndroid Build Coastguard Worker 65*9880d681SAndroid Build Coastguard Worker %val3 = xor i64 %in64, 18429855317404942275 66*9880d681SAndroid Build Coastguard Worker store volatile i64 %val3, i64* @var64 67*9880d681SAndroid Build Coastguard Worker; CHECK: eor {{x[0-9]+}}, {{x[0-9]+}}, #0xffc3ffc3ffc3ffc3 68*9880d681SAndroid Build Coastguard Worker 69*9880d681SAndroid Build Coastguard Worker ret void 70*9880d681SAndroid Build Coastguard Worker} 71*9880d681SAndroid Build Coastguard Worker 72*9880d681SAndroid Build Coastguard Workerdefine void @test_mov(i32 %in32, i64 %in64) { 73*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mov: 74*9880d681SAndroid Build Coastguard Worker %val0 = add i32 %in32, 2863311530 75*9880d681SAndroid Build Coastguard Worker store i32 %val0, i32* @var32 76*9880d681SAndroid Build Coastguard Worker; CHECK: mov {{w[0-9]+}}, #-1431655766 77*9880d681SAndroid Build Coastguard Worker 78*9880d681SAndroid Build Coastguard Worker %val1 = add i64 %in64, 11068046444225730969 79*9880d681SAndroid Build Coastguard Worker store i64 %val1, i64* @var64 80*9880d681SAndroid Build Coastguard Worker; CHECK: mov {{x[0-9]+}}, #-7378697629483820647 81*9880d681SAndroid Build Coastguard Worker 82*9880d681SAndroid Build Coastguard Worker ret void 83*9880d681SAndroid Build Coastguard Worker; CHECK: ret 84*9880d681SAndroid Build Coastguard Worker} 85