xref: /llvm-project/llvm/test/CodeGen/AVR/stdwstk.ll (revision 9ef1d37ffb5f56a9b949a6307bbb16c2ea0130e3)
1*9ef1d37fSFangrui Song; RUN: llc < %s -mtriple=avr -mcpu=atmega328 -O1 -verify-machineinstrs | FileCheck %s
26641c57aSPatryk Wychowaniec; CHECK-NOT: stdwstk
36641c57aSPatryk Wychowaniec
46641c57aSPatryk Wychowaniec; Checks that we expand STDWSPQRr always - even if it appears outside of the
56641c57aSPatryk Wychowaniec; FrameSetup/FrameDestroy context.
66641c57aSPatryk Wychowaniec
76641c57aSPatryk Wychowaniecdeclare { } @foo(i128, i128) addrspace(1)
86641c57aSPatryk Wychowaniec
96641c57aSPatryk Wychowaniecdefine i128 @bar(i128 %a, i128 %b) addrspace(1) {
106641c57aSPatryk Wychowaniec  %b_neg = icmp slt i128 %b, 0
116641c57aSPatryk Wychowaniec  %divisor = select i1 %b_neg, i128 0, i128 %b
126641c57aSPatryk Wychowaniec  %result = tail call fastcc addrspace(1) { } @foo(i128 undef, i128 %divisor)
136641c57aSPatryk Wychowaniec
146641c57aSPatryk Wychowaniec  ret i128 0
156641c57aSPatryk Wychowaniec}
16