On Wed, Apr 25, 2012 at 11:09 PM, Marc Glisse <marc.gli...@inria.fr> wrote: > On Wed, 25 Apr 2012, H.J. Lu wrote: > >> You can download an AVX2 emulator (SDE) from >> >> http://software.intel.com/en-us/avx/ >> >> to test AVX2 binaries. > > > Hello, > > not related to this specific patch, but do you have a dejagnu board > description that you could share that enables running the compiler normally > and running the compiled test programs through SDE? Doing make check inside > the emulator is possible but takes forever, while using the emulator just > for execution tests seems like it should be manageable. >
These are what I have [hjl@gnu-6 dejagnu]$ cat sde-sim #! /bin/sh $SDE_DIR/sde -- ${1+"$@"} [hjl@gnu-6 dejagnu]$ cat sde-sim.exp # Load the generic configuration for this board. This will define any # routines needed to communicate with the board. load_generic_config "sim" process_multilib_options "" # Unset the slow_simulator flag; this simulator isn't slow. unset_board_info slow_simulator if ![board_info $board exists sim] { if [info exists SIM] { set_board_info sim $SIM } else { set env(SDE_DIR) $sde_dir set_board_info sim $sde_sim_boadr_dir/sde-sim } } set_board_info is_simulator 1 # The compiler used to build for this board. This has *nothing* to do # with what compiler is tested if we're testing gcc. set_board_info compiler "[find_gcc]" #set_board_info ldflags "" #set_board_info ldscript "" # Return codes aren't supported by the simulator. #set_board_info needs_status_wrapper 1 # Replace sim_load with our own to properly set up arguments and # LD_LIBRARY_PATH. if { [info procs sim_load] != [list] } { # Remove the old sim_load. rename sim_load "" proc sim_load { dest prog args } { if { [llength $args] > 0 } { set parg [lindex $args 0] } else { set parg "" } set inpfile "" if { [llength $args] > 1 } { if { [lindex $args 1] != "" } { set inpfile "[lindex $args 1]" } } if ![file exists $prog] then { perror "sde-sim.exp: $prog to be downloaded does not exist." verbose -log "$prog to be downloaded does not exist." 3 return [list "untested" ""] } if [board_info $dest exists sim_time_limit] { set sim_time_limit [board_info $dest sim_time_limit] } else { set sim_time_limit 240 } set output "" set cmd $prog global ld_library_path if [info exists ld_library_path] { set orig_ld_library_path "[getenv LD_LIBRARY_PATH]" setenv LD_LIBRARY_PATH "$ld_library_path:$orig_ld_library_path" setenv SHLIB_PATH "$ld_library_path:$orig_ld_library_path" verbose -log "Setting LD_LIBRARY_PATH to $ld_library_path:$orig_ld_library_path" 2 } # Run the program with a limited amount of real time. While # this isn't as nice as limiting the amount of CPU time, it # will have to do. if { $inpfile != "" } { set res [remote_spawn target "${cmd} $parg < $inpfile" "readonly"] } else { set res [remote_spawn target "${cmd} $parg"] } if { $res <= 0 } { return [list "fail" "remote_spawn failed"] } set state [remote_wait target $sim_time_limit] set status [lindex $state 0] set output [lindex $state 1] verbose "Output is $output" if [info exists ld_library_path] { setenv LD_LIBRARY_PATH $orig_ld_library_path setenv SHLIB_PATH $orig_ld_library_path } # Remove the carriage returns, because they confuse callers # that try to parse the result. regsub -all "\r" $output "" output set status2 [check_for_board_status output] if { $status2 >= 0 } { set status $status2 } # FIXME: Do we need to examine $status? # Yes, we do--what if the simulator itself gets an error and # coredumps? verbose "Return status was: $status" 2 if { $status == 0 } { set result "pass" } else { set result "fail" } return [list $result $output] } } [hjl@gnu-6 dejagnu]$ -- H.J.