[AArch64] Fix bug in prolog clobbering live reg when shrink wrapping.
[oota-llvm.git] / test / CodeGen / AArch64 / remat-float0.ll
1 ; RUN: llc < %s -mtriple=aarch64-none-linux-gnu -verify-machineinstrs | FileCheck %s
2
3 ; Check that float 0 gets rematerialized with an fmov of zero reg instead
4 ; of spilled/filled.
5
6 declare void @bar(float)
7
8 define void @foo() {
9 ; CHECK-LABEL: foo:
10 ; CHECK: fmov s0, wzr
11 ; CHECK: bl bar
12 ; CHECK: fmov s0, wzr
13 ; CHECK: bl bar
14   call void @bar(float 0.000000e+00)
15   call void asm sideeffect "", "~{s0},~{s1},~{s2},~{s3},~{s4},~{s5},~{s6},~{s7},~{s8},~{s9},~{s10},~{s11},~{s12},~{s13},~{s14},~{s15},~{s16},~{s17},~{s18},~{s19},~{s20},~{s21},~{s22},~{s23},~{s24},~{s25},~{s26},~{s27},~{s28},~{s29},~{s30},~{s31}"()
16   call void @bar(float 0.000000e+00)
17   ret void
18 }