1*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s -inline -S | not grep "invoke void asm" 2*9880d681SAndroid Build Coastguard Worker; PR1335 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Workertarget datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64" 5*9880d681SAndroid Build Coastguard Workertarget triple = "i686-pc-linux-gnu" 6*9880d681SAndroid Build Coastguard Worker %struct.gnat__strings__string_access = type { i8*, %struct.string___XUB* } 7*9880d681SAndroid Build Coastguard Worker %struct.string___XUB = type { i32, i32 } 8*9880d681SAndroid Build Coastguard Worker 9*9880d681SAndroid Build Coastguard Workerdefine void @bc__support__high_resolution_time__clock() { 10*9880d681SAndroid Build Coastguard Workerentry: 11*9880d681SAndroid Build Coastguard Worker call void asm "rdtsc\0A\09movl %eax, $0\0A\09movl %edx, $1", "=*imr,=*imr,~{dirflag},~{fpsr},~{flags},~{dx},~{ax}"( i32* null, i32* null ) nounwind 12*9880d681SAndroid Build Coastguard Worker unreachable 13*9880d681SAndroid Build Coastguard Worker} 14*9880d681SAndroid Build Coastguard Worker 15*9880d681SAndroid Build Coastguard Workerdefine fastcc void @bc__support__high_resolution_time__initialize_clock_rate() personality i32 (...)* @__gxx_personality_v0 { 16*9880d681SAndroid Build Coastguard Workerentry: 17*9880d681SAndroid Build Coastguard Worker invoke void @gnat__os_lib__getenv( %struct.gnat__strings__string_access* null ) 18*9880d681SAndroid Build Coastguard Worker to label %invcont unwind label %cleanup144 19*9880d681SAndroid Build Coastguard Worker 20*9880d681SAndroid Build Coastguard Workerinvcont: ; preds = %entry 21*9880d681SAndroid Build Coastguard Worker invoke void @ada__calendar__delays__delay_for( ) 22*9880d681SAndroid Build Coastguard Worker to label %invcont64 unwind label %cleanup144 23*9880d681SAndroid Build Coastguard Worker 24*9880d681SAndroid Build Coastguard Workerinvcont64: ; preds = %invcont 25*9880d681SAndroid Build Coastguard Worker invoke void @ada__calendar__clock( ) 26*9880d681SAndroid Build Coastguard Worker to label %invcont65 unwind label %cleanup144 27*9880d681SAndroid Build Coastguard Worker 28*9880d681SAndroid Build Coastguard Workerinvcont65: ; preds = %invcont64 29*9880d681SAndroid Build Coastguard Worker invoke void @bc__support__high_resolution_time__clock( ) 30*9880d681SAndroid Build Coastguard Worker to label %invcont67 unwind label %cleanup144 31*9880d681SAndroid Build Coastguard Worker 32*9880d681SAndroid Build Coastguard Workerinvcont67: ; preds = %invcont65 33*9880d681SAndroid Build Coastguard Worker ret void 34*9880d681SAndroid Build Coastguard Worker 35*9880d681SAndroid Build Coastguard Workercleanup144: ; preds = %invcont65, %invcont64, %invcont, %entry 36*9880d681SAndroid Build Coastguard Worker %exn = landingpad {i8*, i32} 37*9880d681SAndroid Build Coastguard Worker cleanup 38*9880d681SAndroid Build Coastguard Worker resume { i8*, i32 } %exn 39*9880d681SAndroid Build Coastguard Worker} 40*9880d681SAndroid Build Coastguard Worker 41*9880d681SAndroid Build Coastguard Workerdeclare i32 @__gxx_personality_v0(...) 42*9880d681SAndroid Build Coastguard Worker 43*9880d681SAndroid Build Coastguard Workerdeclare void @gnat__os_lib__getenv(%struct.gnat__strings__string_access*) 44*9880d681SAndroid Build Coastguard Worker 45*9880d681SAndroid Build Coastguard Workerdeclare void @ada__calendar__delays__delay_for() 46*9880d681SAndroid Build Coastguard Worker 47*9880d681SAndroid Build Coastguard Workerdeclare void @ada__calendar__clock() 48*9880d681SAndroid Build Coastguard Worker 49*9880d681SAndroid Build Coastguard Workerdefine void @bc__support__high_resolution_time___elabb() { 50*9880d681SAndroid Build Coastguard Workerentry: 51*9880d681SAndroid Build Coastguard Worker call fastcc void @bc__support__high_resolution_time__initialize_clock_rate( ) 52*9880d681SAndroid Build Coastguard Worker ret void 53*9880d681SAndroid Build Coastguard Worker} 54