; RUN: opt -S -avr-instrument-functions < %s | FileCheck %s ; Functions returning void should not be instrumented. ; CHECK-LABEL: do_nothing define void @do_nothing(i8 %c) { ; CHECK-NEXT: ret void ret void } ; CHECK-LABEL: do_something define i8 @do_something(i16 %a, i16 %b) { ; CHECK: instrumentation_entry ; CHECK-NEXT: %0 = getelementptr inbounds [13 x i8], [13 x i8]* @0, i8 0, i8 0 ; CHECK-NEXT: call void @avr_instrumentation_begin_signature(i8* %0, i16 2) ; CHECK-NEXT: %1 = getelementptr inbounds [2 x i8], [2 x i8]* @1, i8 0, i8 0 ; CHECK-NEXT: call void @avr_instrumentation_argument_i16(i8* %1, i8 0, i16 %a) ; CHECK-NEXT: %2 = getelementptr inbounds [2 x i8], [2 x i8]* @2, i8 0, i8 0 ; CHECK-NEXT: call void @avr_instrumentation_argument_i16(i8* %2, i8 1, i16 %b) ; CHECK-NEXT: %3 = getelementptr inbounds [13 x i8], [13 x i8]* @3, i8 0, i8 0 ; CHECK-NEXT: call void @avr_instrumentation_end_signature(i8* %3, i16 2) ; CHECK-NEXT: br label %4 ; CHECK: call void @avr_instrumentation_result_i8(i8 1) ; CHECK-NEXT: ret i8 1 ret i8 1 } ; CHECK-LABEL: foo define i32 @foo() { ; CHECK: instrumentation_entry: ; CHECK-NEXT: %0 = getelementptr inbounds [4 x i8], [4 x i8]* @4, i8 0, i8 0 ; CHECK-NEXT: call void @avr_instrumentation_begin_signature(i8* %0, i16 0) ; CHECK-NEXT: %1 = getelementptr inbounds [4 x i8], [4 x i8]* @5, i8 0, i8 0 ; CHECK-NEXT: call void @avr_instrumentation_end_signature(i8* %1, i16 0) ; CHECK-NEXT: br label %2 ; CHECK: call void @avr_instrumentation_result_i32(i32 50) ; CHECK-NEXT: ret i32 50 ret i32 50 } ; CHECK-LABEL: floaty define float @floaty(float %a) { ; CHECK: instrumentation_entry: ; CHECK-NEXT: %0 = getelementptr inbounds [7 x i8], [7 x i8]* @6, i8 0, i8 0 ; CHECK-NEXT: call void @avr_instrumentation_begin_signature(i8* %0, i16 1) ; CHECK-NEXT: %1 = getelementptr inbounds [2 x i8], [2 x i8]* @7, i8 0, i8 0 ; CHECK-NEXT: call void @avr_instrumentation_argument_f32(i8* %1, i8 0, float %a) ; CHECK-NEXT: %2 = getelementptr inbounds [7 x i8], [7 x i8]* @8, i8 0, i8 0 ; CHECK-NEXT: call void @avr_instrumentation_end_signature(i8* %2, i16 1) ; CHECK-NEXT: br label %3 ; ; CHECK: call void @avr_instrumentation_result_f32(float 1.200000e+01) ; CHECK-NEXT: ret float 1.200000e+01 ret float 12.0 }