1*9880d681SAndroid Build Coastguard Worker; RUN: llc -mcpu=swift -mtriple=thumbv7s-apple-ios -o - %s | FileCheck %s --check-prefix=CHECK-STRIDE4 2*9880d681SAndroid Build Coastguard Worker; RUN: llc -mcpu=swift -mtriple=thumbv7k-apple-watchos -o - %s | FileCheck %s --check-prefix=CHECK-STRIDE4-WATCH 3*9880d681SAndroid Build Coastguard Worker; RUN: llc -mcpu=cortex-a57 -mtriple=thumbv7-linux-gnueabihf -o - %s | FileCheck %s --check-prefix=CHECK-GENERIC 4*9880d681SAndroid Build Coastguard Worker 5*9880d681SAndroid Build Coastguard Workerdefine void @test_reg_stride(double %a, double %b) { 6*9880d681SAndroid Build Coastguard Worker; CHECK-STRIDE4-LABEL: test_reg_stride: 7*9880d681SAndroid Build Coastguard Worker; CHECK-STRIDE4-DAG: vmov d16, r 8*9880d681SAndroid Build Coastguard Worker; CHECK-STRIDE4-DAG: vmov d18, r 9*9880d681SAndroid Build Coastguard Worker 10*9880d681SAndroid Build Coastguard Worker; CHECK-STRIDE4-WATCH-LABEL: test_reg_stride: 11*9880d681SAndroid Build Coastguard Worker; CHECK-STRIDE4-WATCH-DAG: vmov.f64 d16, d 12*9880d681SAndroid Build Coastguard Worker; CHECK-STRIDE4-WATCH-DAG: vmov.f64 d18, d 13*9880d681SAndroid Build Coastguard Worker 14*9880d681SAndroid Build Coastguard Worker; CHECK-GENERIC-LABEL: test_reg_stride: 15*9880d681SAndroid Build Coastguard Worker; CHECK-GENERIC-DAG: vmov.f64 d16, {{d[01]}} 16*9880d681SAndroid Build Coastguard Worker; CHECK-GENERIC-DAG: vmov.f64 d17, {{d[01]}} 17*9880d681SAndroid Build Coastguard Worker 18*9880d681SAndroid Build Coastguard Worker call void asm "", "~{r0},~{r1},~{d0},~{d1}"() 19*9880d681SAndroid Build Coastguard Worker call arm_aapcs_vfpcc void @eat_doubles(double %a, double %b) 20*9880d681SAndroid Build Coastguard Worker ret void 21*9880d681SAndroid Build Coastguard Worker} 22*9880d681SAndroid Build Coastguard Worker 23*9880d681SAndroid Build Coastguard Workerdefine void @test_stride_minsize(float %a, float %b) minsize { 24*9880d681SAndroid Build Coastguard Worker; CHECK-STRIDE4-LABEL: test_stride_minsize: 25*9880d681SAndroid Build Coastguard Worker; CHECK-STRIDE4: vmov d2, {{r[01]}} 26*9880d681SAndroid Build Coastguard Worker; CHECK-STRIDE4: vmov d3, {{r[01]}} 27*9880d681SAndroid Build Coastguard Worker 28*9880d681SAndroid Build Coastguard Worker; CHECK-STRIDE4-WATCH-LABEL: test_stride_minsize: 29*9880d681SAndroid Build Coastguard Worker; CHECK-STRIDE4-WATCH-DAG: vmov.f32 s4, {{s[01]}} 30*9880d681SAndroid Build Coastguard Worker; CHECK-STRIDE4-WATCH-DAG: vmov.f32 s8, {{s[01]}} 31*9880d681SAndroid Build Coastguard Worker 32*9880d681SAndroid Build Coastguard Worker; CHECK-GENERIC-LABEL: test_stride_minsize: 33*9880d681SAndroid Build Coastguard Worker; CHECK-GENERIC-DAG: vmov.f32 s4, {{s[01]}} 34*9880d681SAndroid Build Coastguard Worker; CHECK-GENERIC-DAG: vmov.f32 s6, {{s[01]}} 35*9880d681SAndroid Build Coastguard Worker call void asm "", "~{r0},~{r1},~{s0},~{s1},~{d0},~{d1}"() 36*9880d681SAndroid Build Coastguard Worker call arm_aapcs_vfpcc void @eat_floats(float %a, float %b) 37*9880d681SAndroid Build Coastguard Worker ret void 38*9880d681SAndroid Build Coastguard Worker} 39*9880d681SAndroid Build Coastguard Worker 40*9880d681SAndroid Build Coastguard Worker 41*9880d681SAndroid Build Coastguard Workerdeclare arm_aapcs_vfpcc void @eat_doubles(double, double) 42*9880d681SAndroid Build Coastguard Workerdeclare arm_aapcs_vfpcc void @eat_floats(float, float) 43