Chandler Carruth | ff123d5 | 2012-07-02 19:09:46 +0000 | [diff] [blame] | 1 | ; RUN: opt < %s -inline -S | not grep "invoke void asm" |
Chris Lattner | d3fd9ec | 2007-04-15 21:37:53 +0000 | [diff] [blame] | 2 | ; PR1335 |
| 3 | |
| 4 | target 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 | target triple = "i686-pc-linux-gnu" |
| 6 | %struct.gnat__strings__string_access = type { i8*, %struct.string___XUB* } |
| 7 | %struct.string___XUB = type { i32, i32 } |
| 8 | |
| 9 | define void @bc__support__high_resolution_time__clock() { |
| 10 | entry: |
Duncan Sands | 8e4847e | 2007-12-16 15:51:49 +0000 | [diff] [blame] | 11 | call void asm "rdtsc\0A\09movl %eax, $0\0A\09movl %edx, $1", "=*imr,=*imr,~{dirflag},~{fpsr},~{flags},~{dx},~{ax}"( i32* null, i32* null ) nounwind |
Chris Lattner | d3fd9ec | 2007-04-15 21:37:53 +0000 | [diff] [blame] | 12 | unreachable |
| 13 | } |
| 14 | |
David Majnemer | 7fddecc | 2015-06-17 20:52:32 +0000 | [diff] [blame] | 15 | define fastcc void @bc__support__high_resolution_time__initialize_clock_rate() personality i32 (...)* @__gxx_personality_v0 { |
Chris Lattner | d3fd9ec | 2007-04-15 21:37:53 +0000 | [diff] [blame] | 16 | entry: |
| 17 | invoke void @gnat__os_lib__getenv( %struct.gnat__strings__string_access* null ) |
| 18 | to label %invcont unwind label %cleanup144 |
| 19 | |
| 20 | invcont: ; preds = %entry |
| 21 | invoke void @ada__calendar__delays__delay_for( ) |
| 22 | to label %invcont64 unwind label %cleanup144 |
| 23 | |
| 24 | invcont64: ; preds = %invcont |
| 25 | invoke void @ada__calendar__clock( ) |
| 26 | to label %invcont65 unwind label %cleanup144 |
| 27 | |
| 28 | invcont65: ; preds = %invcont64 |
| 29 | invoke void @bc__support__high_resolution_time__clock( ) |
| 30 | to label %invcont67 unwind label %cleanup144 |
| 31 | |
| 32 | invcont67: ; preds = %invcont65 |
| 33 | ret void |
| 34 | |
| 35 | cleanup144: ; preds = %invcont65, %invcont64, %invcont, %entry |
David Majnemer | 7fddecc | 2015-06-17 20:52:32 +0000 | [diff] [blame] | 36 | %exn = landingpad {i8*, i32} |
Bill Wendling | d33e300 | 2011-09-01 01:08:21 +0000 | [diff] [blame] | 37 | cleanup |
| 38 | resume { i8*, i32 } %exn |
Chris Lattner | d3fd9ec | 2007-04-15 21:37:53 +0000 | [diff] [blame] | 39 | } |
| 40 | |
Bill Wendling | d33e300 | 2011-09-01 01:08:21 +0000 | [diff] [blame] | 41 | declare i32 @__gxx_personality_v0(...) |
| 42 | |
Chris Lattner | d3fd9ec | 2007-04-15 21:37:53 +0000 | [diff] [blame] | 43 | declare void @gnat__os_lib__getenv(%struct.gnat__strings__string_access*) |
| 44 | |
| 45 | declare void @ada__calendar__delays__delay_for() |
| 46 | |
| 47 | declare void @ada__calendar__clock() |
| 48 | |
| 49 | define void @bc__support__high_resolution_time___elabb() { |
| 50 | entry: |
| 51 | call fastcc void @bc__support__high_resolution_time__initialize_clock_rate( ) |
| 52 | ret void |
| 53 | } |