1*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=hexagon -mcpu=hexagonv4 < %s | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker; CHECK: call __hexagon_{{[A-Z_a-z0-9]+}} 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Worker@a_str = internal constant [8 x i8] c"a = %f\0A\00" 5*9880d681SAndroid Build Coastguard Worker@b_str = internal constant [8 x i8] c"b = %f\0A\00" 6*9880d681SAndroid Build Coastguard Worker@add_str = internal constant [12 x i8] c"a + b = %f\0A\00" 7*9880d681SAndroid Build Coastguard Worker@sub_str = internal constant [12 x i8] c"a - b = %f\0A\00" 8*9880d681SAndroid Build Coastguard Worker@mul_str = internal constant [12 x i8] c"a * b = %f\0A\00" 9*9880d681SAndroid Build Coastguard Worker@div_str = internal constant [12 x i8] c"b / a = %f\0A\00" 10*9880d681SAndroid Build Coastguard Worker@rem_str = internal constant [13 x i8] c"b %% a = %f\0A\00" 11*9880d681SAndroid Build Coastguard Worker@lt_str = internal constant [12 x i8] c"a < b = %d\0A\00" 12*9880d681SAndroid Build Coastguard Worker@le_str = internal constant [13 x i8] c"a <= b = %d\0A\00" 13*9880d681SAndroid Build Coastguard Worker@gt_str = internal constant [12 x i8] c"a > b = %d\0A\00" 14*9880d681SAndroid Build Coastguard Worker@ge_str = internal constant [13 x i8] c"a >= b = %d\0A\00" 15*9880d681SAndroid Build Coastguard Worker@eq_str = internal constant [13 x i8] c"a == b = %d\0A\00" 16*9880d681SAndroid Build Coastguard Worker@ne_str = internal constant [13 x i8] c"a != b = %d\0A\00" 17*9880d681SAndroid Build Coastguard Worker@A = global double 2.000000e+00 18*9880d681SAndroid Build Coastguard Worker@B = global double 5.000000e+00 19*9880d681SAndroid Build Coastguard Worker 20*9880d681SAndroid Build Coastguard Workerdeclare i32 @printf(i8*, ...) 21*9880d681SAndroid Build Coastguard Worker 22*9880d681SAndroid Build Coastguard Workerdefine i32 @main() { 23*9880d681SAndroid Build Coastguard Worker %a = load double, double* @A 24*9880d681SAndroid Build Coastguard Worker %b = load double, double* @B 25*9880d681SAndroid Build Coastguard Worker %lt_r = fcmp olt double %a, %b 26*9880d681SAndroid Build Coastguard Worker %le_r = fcmp ole double %a, %b 27*9880d681SAndroid Build Coastguard Worker %gt_r = fcmp ogt double %a, %b 28*9880d681SAndroid Build Coastguard Worker %ge_r = fcmp oge double %a, %b 29*9880d681SAndroid Build Coastguard Worker %eq_r = fcmp oeq double %a, %b 30*9880d681SAndroid Build Coastguard Worker %ne_r = fcmp une double %a, %b 31*9880d681SAndroid Build Coastguard Worker %val1 = zext i1 %lt_r to i8 32*9880d681SAndroid Build Coastguard Worker %lt_s = getelementptr [12 x i8], [12 x i8]* @lt_str, i64 0, i64 0 33*9880d681SAndroid Build Coastguard Worker %le_s = getelementptr [13 x i8], [13 x i8]* @le_str, i64 0, i64 0 34*9880d681SAndroid Build Coastguard Worker %gt_s = getelementptr [12 x i8], [12 x i8]* @gt_str, i64 0, i64 0 35*9880d681SAndroid Build Coastguard Worker %ge_s = getelementptr [13 x i8], [13 x i8]* @ge_str, i64 0, i64 0 36*9880d681SAndroid Build Coastguard Worker %eq_s = getelementptr [13 x i8], [13 x i8]* @eq_str, i64 0, i64 0 37*9880d681SAndroid Build Coastguard Worker %ne_s = getelementptr [13 x i8], [13 x i8]* @ne_str, i64 0, i64 0 38*9880d681SAndroid Build Coastguard Worker call i32 (i8*, ...) @printf( i8* %lt_s, i8 %val1 ) 39*9880d681SAndroid Build Coastguard Worker ret i32 0 40*9880d681SAndroid Build Coastguard Worker} 41